home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TeX 1995 July
/
TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO
/
macros
/
musictex
/
older-versions
/
musictex.500
/
MUSICTEX.TEX
< prev
next >
Wrap
Text File
|
1994-01-31
|
77KB
|
2,268 lines
%
% THIS is MusicTeX
\message{Version 5.01 -- January 31st, 1994}%
\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
\newif\ifcatcodesmusic
\def\catcodesmusic{\ifcatcodesmusic\relax
\else
\edef\catcode@gt{\the\catcode`\>}\catcode`\>=12%
\edef\catcode@lt{\the\catcode`\<}\catcode`\<=12%
\edef\catcode@vert{\the\catcode`\|}\catcode`\|=13%
\edef\catcode@and{\the\catcode`\&}\catcode`\&=13%
\edef\catcode@excl{\the\catcode`\!}\catcode`\!=12%
\edef\catcode@star{\the\catcode`\*}\catcode`\*=12%
\edef\catcode@pt{\the\catcode`\.}\catcode`\.=12%
\edef\catcode@sc{\the\catcode`\:}\catcode`\:=12%
\fi\catcodesmusictrue}
\catcodesmusic
% PARAMETERS DIFFERENT THAN IN PLAIN
%
\normallineskiplimit=\p@
\parindent 10mm
%
% EXTRA FONTS NEEDED
%
\font\enorme=\fonthdg\fonthdge bx12 scaled \magstep4
\font\moyen=\fonthdg\fonthdge bx12 scaled \magstep1
\font\tentt=\fonthdg\fonthdge tt10
\font\ppffsixteen=\fonthdg\fonthdge bxti10
\font\ppfftwenty=\fonthdg\fonthdge bxti10 scaled \magstep1
%
\tolerance=10000\relax
% procedures speciales D. taupin
% **** \hsize 16cm \vsize 24cm
%
\let\@plainwlog=\wlog
\def\wlog#1{}%
%
%\check
%
\raggedbottom
\def\p@t{\kern 1.5pt\pointfont\char"2E}%
\def\P@t{\pt@raise\hbox{\p@t}}%
\def\PP@t{\pt@raise\hbox{\p@t\char"2E}}%
\def\PPP@t{\pt@raise\hbox{\p@t\char"2E\char"2E}}%
%
%\check
%
\def\f@tok#1#2\af@tok{#1}%
\def\s@tok#1#2\af@tok{#2}%
%
\def\gl@au#1{\ifnum #1<0\relax\global\advance #1 by -1\relax\fi
\ifnum #1>0\relax\global\advance #1 by 1\relax\fi}%
\def\gl@de#1{\ifnum #1<0\relax\global\advance #1 by 1\relax\fi
\ifnum #1>0\relax\global\advance #1 by -1\relax\fi}%
%
%
% Amount of skip needed at bar lines
\newskip\tempsskip
\newdimen\brace@w
\newdimen\afterruleskip
\newdimen\pt@up % offset point de notes pointees
\newdimen\noteskip
\newdimen\elemskip
\newdimen\q@antum
\newdimen\n@raise
\newdimen\n@width
\newdimen\stem@skip
\newdimen\interligne % entre les lignes
%%%% \newdimen\nullthick % pour les parties sans portees (paroles)
\newdimen\staffbotmarg % marge au-dessous des portees
\newdimen\stafftopmarg % au-dessus des portees
\newdimen\Internote % la moitie de \Interligne
\def\internote{\Internote}%
\newdimen\interbeam % distance entre poutres
\newdimen\Interligne % de la base d'une ligne a l'autre
\newdimen\interportee % distance between staffs of the same instrument (incl)
\newdimen\Interportee % distance between staffs of the same instrument (excl)
\newdimen\interinstrument % distance between instruments (added to \interportee)
\newdimen\systemheight
%
\newdimen\altplancher
\newdimen\altportee
\newdimen\line@width
\newdimen\x@skip
\newdimen\locx@skip
\newdimen\st@bot % note stem bottom
\newdimen\st@top % note stem top
%
% positions x et z de debut des tenues
\newdimen\t@xi\newdimen\t@zi
\newdimen\t@xii\newdimen\t@zii
\newdimen\t@xiii\newdimen\t@ziii
\newdimen\t@xiv\newdimen\t@ziv
\newdimen\t@xv\newdimen\t@zv
\newdimen\t@xvi\newdimen\t@zvi
%
\newdimen\t@y
%
% signes des tenues ( \t@p: entier de -1 a +1 )
% etat des tenues ( \t@s: 0= inactive, 1= actif, 2= continuation )
%
\newcount\t@pi\newcount\t@si
\newcount\t@pii\newcount\t@sii
\newcount\t@piii\newcount\t@siii
\newcount\t@piv\newcount\t@siv
\newcount\t@pv\newcount\t@sv
\newcount\t@pvi\newcount\t@svi
%
% positions x et z de debut des poutres
\newdimen\b@xi\newdimen\b@zi
\newdimen\b@xii\newdimen\b@zii
\newdimen\b@xiii\newdimen\b@ziii
\newdimen\b@xiv\newdimen\b@ziv
\newdimen\b@xv\newdimen\b@zv
\newdimen\b@xvi\newdimen\b@zvi
%
\newdimen\bb@xi\newdimen\bb@zi
\newdimen\bb@xii\newdimen\bb@zii
\newdimen\bb@xiii\newdimen\bb@ziii
\newdimen\bb@xiv\newdimen\bb@ziv
\newdimen\bb@xv\newdimen\bb@zv
\newdimen\bb@xvi\newdimen\bb@zvi
%
\newdimen\bbb@xi\newdimen\bbb@zi
\newdimen\bbb@xii\newdimen\bbb@zii
\newdimen\bbb@xiii\newdimen\bbb@ziii
\newdimen\bbb@xiv\newdimen\bbb@ziv
\newdimen\bbb@xv\newdimen\bbb@zv
\newdimen\bbb@xvi\newdimen\bbb@zvi
%
\newdimen\bbbb@zi
\newdimen\bbbb@zii
\newdimen\bbbb@ziii
\newdimen\bbbb@ziv
\newdimen\bbbb@zv
\newdimen\bbbb@zvi
%
\newdimen\bbbbb@zi
\newdimen\bbbbb@zii
\newdimen\bbbbb@ziii
\newdimen\bbbbb@ziv
\newdimen\bbbbb@zv
\newdimen\bbbbb@zvi
%
% pentes des poutres ( entier de -3 a +3 )
% multiplicite des poutres ( de -5 a +5 . 0= inactive )
%
\newcount\b@pi\newcount\b@ni
\newcount\b@pii\newcount\b@nii
\newcount\b@piii\newcount\b@niii
\newcount\b@piv\newcount\b@niv
\newcount\b@pv\newcount\b@nv
\newcount\b@pvi\newcount\b@nvi
%
\newif\ifraggedlines
%
\newcount\barno
\newcount\lastbarno
\newcount\notes@open
\def\check@nopen{\ifnum\notes@open>0\relax\enotes\message{ missing
\noexpand\enotes\ mesure \the\barno}\fi}%
%
% altitudes des portees de chaque instrument
%
\newcount\ut@ref
\newcount\noportee
\newcount\noinstrument
%
\newcount\nbporteesi
\newcount\nbporteesii
\newcount\nbporteesiii
\newcount\nbporteesiv
\newcount\nbporteesv
\newcount\nbporteesvi
%
\newcount\signi
\newcount\signii
\newcount\signiii
\newcount\signiv
\newcount\signv
\newcount\signvi
%
\newif\ifadvance\advancetrue
\newcount\transpose
\newcount\normaltranspose
\newcount\o@signi
\newcount\o@signii
\newcount\o@signiii
\newcount\o@signiv
\newcount\o@signv
\newcount\o@signvi
%
\newtoks\cleftoksi
\newtoks\cleftoksii
\newtoks\cleftoksiii
\newtoks\cleftoksiv
\newtoks\cleftoksv
\newtoks\cleftoksvi
%
\newtoks\o@cksi
\newtoks\o@cksii
\newtoks\o@cksiii
\newtoks\o@cksiv
\newtoks\o@cksv
\newtoks\o@cksvi
%
\newtoks\metertoksi
\newtoks\metertoksii
\newtoks\metertoksiii
\newtoks\metertoksiv
\newtoks\metertoksv
\newtoks\metertoksvi
%
\global\nbporteesi=1%
\global\nbporteesii=1%
\global\nbporteesiii=1%
\global\nbporteesiv=1%
\global\nbporteesv=1%
\global\nbporteesvi=1%
\global\cleftoksi={{0}{0}{0}{0}}%
\global\cleftoksii={{0}{0}{0}{0}}%
\global\cleftoksiii={{0}{0}{0}{0}}%
\global\cleftoksiv={{0}{0}{0}{0}}%
\global\cleftoksv={{0}{0}{0}{0}}%
\global\cleftoksvi={{0}{0}{0}{0}}%
%
%\check
%
\def\n@advance{\global\advance\noinstrument by 1\relax}%
\def\n@loop{\global\noinstrument=0\relax\loop
\ifnum\noinstrument<\nbinstruments\relax\n@advance
\selectinstr}%
%
\def\savemeters{\savemeter}%
\def\savemeter{\n@loop\global\metertoks={{}{}{}{}}\repeat}%
%\check
\def\maxinstruments{6}%
%
\def\selectinstr{%
\xdef\altitude{\csname k@i\romannumeral\noinstrument\endcsname}%
\xdef\nbportees{\csname nbportees\romannumeral\noinstrument\endcsname}%
\xdef\staffspacing{\csname staffspacing\romannumeral\noinstrument\endcsname}%
\xdef\stafflinesnb{\csname stafflinesnb\romannumeral\noinstrument\endcsname}%
\xdef\clefdut{\csname clefdut\romannumeral\noinstrument\endcsname}%
\xdef\clefdefa{\csname clefdefa\romannumeral\noinstrument\endcsname}%
\xdef\clefdesol{\csname clefdesol\romannumeral\noinstrument\endcsname}%
\xdef\internote{\csname internote\romannumeral\noinstrument\endcsname}%
\xdef\sign{\csname sign\romannumeral\noinstrument\endcsname}%
\xdef\o@sign{\csname o@sign\romannumeral\noinstrument\endcsname}%
\xdef\cleftoks{\csname cleftoks\romannumeral\noinstrument\endcsname}%
\xdef\metertoks{\csname metertoks\romannumeral\noinstrument\endcsname}%
\xdef\o@cks{\csname o@cks\romannumeral\noinstrument\endcsname}%
\interportee=\interfacteur\internote
\interportee=2\interportee
\Interportee=\interportee
\advance\Interportee by -\stafflinesnb\internote
\advance\Interportee by -\stafflinesnb\internote
\advance\Interportee by 2\internote
}
%\check
%
% compteurs de travail
%
\newcount\n@i
\newcount\n@ii
\newcount\n@iii
%
% registres de travail
%
\newbox\toks@box
\newbox\workbox
\newbox\n@otebox
%
%%%%\newdimen\clef@skip
\newdimen\sign@skip
%
\newdimen\y@
\newdimen\y@i
\newdimen\y@ii
\newdimen\y@iii
\newdimen\y@iv
\newdimen\y@v
%
\newtoks\arg@suite
\def\hlthick{0.5\lthick}
\def\vdlthick{\vrule depth \hlthick}
%
% fabrique un jeu complet (ou systeme complet de portees)
% en fonction de \nbinstruments
\def\null@portee{\global\advance\y@ by \nullthick
\ifdim\systemheight>\p@\global\advance\systemheight by \nullthick
\else
\global\advance\altplancher by \nullthick
\fi
}%
%
%\check
%
\ifx\mult@portee\undefined
\def\mult@portee{\y@ii=\nbportees\interportee
\advance\y@ii by -\Interportee
\advance\y@ii by \nbportees\lthick
\advance\y@ii by -\lthick
\raise\y@\llap{\cmex\raise 8\p@\rlap{\char'072}\raise\y@ii\rlap{\char
'070}\divide\y@ii by 2\relax{\advance\y@ii by 8\p@\raise\y@ii\rlap{\char
'074}}\y@v=\y@ii\relax\advance\y@v by -5\p@
\kern 3.8\p@
\vrule depth -5\p@ height \y@v width 1.2\p@ \kern -1.2\p@
\advance\y@v by \y@ii
\advance\y@ii by 5\p@
\vrule depth -\y@ii height \y@v width 1.2\p@
\kern 2.5\p@}}%
\fi % end \ifx \mult@portee
%
%\check
%
\def\n@portee{\global\advance\noportee by 1\relax}%
\def\p@loop{\global\noportee=0\relax
\loop\ifnum\noportee<\nbportees\relax\alt@comp}%
%
%\check
%
\def\alt@comp{\altportee=\altitude
\advance\altportee by \noportee\interportee}%
%
\def\lowersonginstrum{99} % to be used to make heavy bars at staff left
\def\uppersonginstrum{0} % to be used to make heavy bars at staff left
\newdimen\lowersongalt
\newdimen\uppersongalt
%
\def\portees{\rlap{\global\y@=\staffbotmarg
%
\lowersongalt=\z@
\uppersongalt=\z@
\global\systemheight=\z@
\global\altplancher=\y@
\n@loop
%
\global\noportee=0\relax
\global\altitude=\y@
\ifnum\noinstrument=\lowersonginstrum\relax
\lowersongalt=\altitude
\fi
%
\ifnum\nbportees=0\relax
\null@portee
\else
\ifnum\nbportees>1\relax
\mult@portee
\fi
{\loop \raise\y@\portee
\n@portee \global\advance\y@ by \interportee
\global\advance\systemheight by \interportee
\ifnum\noportee<\nbportees
\repeat}\fi % fin du \else pour 0 portees=chant
\ifnum\noinstrument=\uppersonginstrum\relax\uppersongalt=\y@
\advance\uppersongalt by -\Interportee
\advance\uppersongalt by \hlthick
\fi
\ifnum\noinstrument<\nbinstruments
\xdef\interinstrum{\csname interinstrument\romannumeral\noinstrument
\endcsname}%
\expandafter\ifx\interinstrum\relax\xdef\interinstrum{\interinstrument}\fi
\global\advance\systemheight by \interinstrum
\global\advance\y@ by \interinstrum
\fi
\repeat
\global\advance\systemheight by -\Interportee
\global\advance\systemheight by \hlthick
%
\raise\altplancher\rlap{\vdlthick height \systemheight}%
\ifnum\uppersonginstrum>\lowersonginstrum\relax
\advance\uppersongalt by -\lowersongalt
\raise\lowersongalt
\llap{\vdlthick height \uppersongalt width 0.6\Interligne
\kern 0.3\Interligne
\vdlthick height \uppersongalt width \lthick}\type@songsymbols
\fi
{\advance\stafftopmarg by \staffbotmarg
\raise \stafftopmarg\hbox{\vdlthick height \systemheight width \z@}}}}%
%
%\check
% portee simple
\def\staffline{\kern\internote\kern\internote\kern -\lthick
\hrule width \line@width height \hlthick depth \hlthick
}
\def\portee{\rlap{\vbox to \z@ {\vss
\ifnum\stafflinesnb>5\staffline\fi
\ifnum\stafflinesnb>4\staffline\fi
\ifnum\stafflinesnb>3\staffline\fi
\ifnum\stafflinesnb>2\staffline\fi
\ifnum\stafflinesnb>1\staffline\fi
\ifnum\stafflinesnb>0\staffline\fi\kern -\hlthick
}}}%
%\check
%
% initialisations des dimensions etc...
%
%*************** definition des titres des instruments
% ***********************
%
\def\instrumenti{}%
\def\instrumentii{}%
\def\instrumentiii{}%
\def\instrumentiv{}%
\def\instrumentv{}%
\def\instrumentvi{}%
%\check
%
\def\maxlegatenuti{6}%
\def\ten@loop{\global\n@l=0\relax\loop\ifnum\n@l<\maxlegatenuti\relax
\selecttenue{\n@l}}%
%
\def\resettens{\resetlegs}%
\newcount\n@l
\def\resetlegs{\global\setbox\@tenubox
\hbox{\kern\tenboxwidth}\ten@loop \global\t@p=0\relax \global\t@s=0\relax
\global\advance\n@l by 1\relax
\repeat}%
%
%\check
%
\def\piece@begina{\barno=1\relax\global\barsinline=0\relax
\frenchspacing\ifnum1>\nbinstruments\errmessage{\noexpand\nbinstruments
not defined !}\fi
\def\barvrule{\thinvrule}\resetlegs
\savesignature\computewidths}%
%
\def\debutmorceau{\catcodesmusic\leavevmode\piece@begina
\advance\line@width by -\parindent
\portees\instrumentnames
\advance\line@width by \parindent
\tempsskip=2pt plus \gluemaxskip minus 2pt
\zglueskip=0pt plus \gluemaxskip minus .5pt%
\piece@beginb\setnormalhyphen}%
%
\def\piece@beginb{\writeclefs\everystaff
\writesignatures\writemeters
\save@all\currenthyphenpenalty}%
%
\def\save@all{\saveclefs\savesignature\savemeters}%
%
\def\debutextrait{\catcodesmusic\piece@begina
\setbox\workbox=\hbox{\portees}% to compute heights
\setbox\workbox=\hbox\bgroup
\def\barre{\xbarre}\piece@beginb}%
%\check
\def\zfinextrait{\def\suspmorceau{\zsuspmorceau}\finextrait}
\def\finextrait{\def\z@suspend{}\suspmorceau\egroup
\line@width=\wd\workbox
\centerline{\instrumentnames\portees\unhbox\workbox}\endcatcodesmusic}%
%
% saving penalties to be able to restore them at the end of music
%
\def\savepenalties{\edef\restorepenalties{%
\noexpand\linepenalty=\the\linepenalty\noexpand\relax
\noexpand\interlinepenalty=\the\interlinepenalty\noexpand\relax
\noexpand\hyphenpenalty=\the\hyphenpenalty\noexpand\relax
\noexpand\exhyphenpenalty=\the\exhyphenpenalty\noexpand\relax
\noexpand\finalhyphendemerits=\the\finalhyphendemerits\noexpand\relax
\noexpand\doublehyphendemerits=\the\doublehyphendemerits\noexpand\relax
\noexpand\adjdemerits=\the\adjdemerits\noexpand\relax
\noexpand\pretolerance=\the\pretolerance\noexpand\relax
}}%
%\check
\def\computewidths{\computespecifics
\interportee=\interfacteur\Interligne
\Interportee=\interportee\advance\Interportee by -8\internote
\ifdim\stafftopmarg<\p@ \stafftopmarg=\topfacteur\Interligne\fi
\ifdim\staffbotmarg<\p@ \staffbotmarg=\bottomfacteur\Interligne\fi
\global\interligne=\Interligne
\global\Internote=0.5\Interligne
%
\ifx\internotei\undefined\relax\else
\n@loop
% decide staffspacing
\expandafter\ifx\staffspacing \undefined\global\internote=\Internote
\else
\expandafter\ifx\staffspacing \relax\global\internote=\Internote
\else\global\internote=\staffspacing\Internote
\fi\fi
\repeat
\fi
%
\ifdim\nullthick<\p@ \global\nullthick=4\Interligne\fi
\global\advance\interligne by -\lthick
%
\afterruleskip=\stdafterruleskip
\global\line@width=\hsize}%
%
\def\stdafterruleskip{4\Internote}%
%
%\check
%
\def\n@alaligne{\suspmorceau\lreprmorceau}%
\def\n@zalaligne{\zsuspmorceau\lreprmorceau}%
\def\lreprmorceau{\reprmorceau}%
\def\suspmorceau{\check@nopen\gluebrule\newbar\z@suspend}%
\def\zsuspmorceau{\check@nopen\termskip\z@suspend}%
\def\z@suspend{\ifraggedlines\else\hfilneg\ \fi
\adv@bottom\par\removelastskip\endcatcodesmusic}%
\def\alapage{\suspmorceau\preprmorceau}%
\def\zalapage{\zsuspmorceau\preprmorceau}%
\def\preprmorceau{\eject\global\linesinpage=0\relax\reprmorceau}%
\def\reprmorceau{\catcodesmusic\atnextline\computewidths\noindent\leavevmode
\global\barsinline=0\relax{\advance\linesinpage by 1\relax\message{Line \the
\linesinpage:}}\relax
\adv@bottom\portees\writeclefs\kern 0.5\Interligne\wbarno@x
\kern -0.5\Interligne\everystaff
\writesignatures\writemeters\zgluearule
\save@all\currenthyphenpenalty\def\atnextline{}}%
%
\def\everystaff{}\def\atnextline{}%
%\check
%
\def\resetsignatures{\generalsignature{0}\savesignature}%
%
\def\savesignature{\n@loop\o@sign=\sign\repeat}%
%\check
\def\saveclefs{\n@loop\global\o@cks=\cleftoks\repeat}
%\check
%
% definitions en fonction du numero de l'instriment
%
\newskip\zglueskip
%
\def\meterfrac#1#2{\setbox\workbox=\vbox{\hbox{\ \meterfont
#1}\hbox{\ \meterfont #2}}%
\vbox to 8\internote{\offinterlineskip\vss\hbox to \wd\workbox{\hss
\meterfont #1\hss}\vss
\vss\hbox to \wd\workbox{\hss\meterfont #2\hss}\vss}}%
%\check
\newtoks\t@gene
\def\generalmeter#1{\t@gene={{#1}{#1}{#1}{#1}}\n@loop
\global\metertoks=\t@gene\repeat}%
%\check
\def\signaturegenerale{\generalsignature}%
\def\generalsignature#1{\n@loop\sign=#1\relax\repeat}%
%
% compteurs de travail
%
% a completer pour fermer les poutres
\def\zglu{\zglue}%
\def\zglue{\nobreak\@tenleader{\zglueskip}\nobreak}%
%
\def\n@skmb{\nobreak\global\advance\n@skip by -\brace@w}%
%
\def\temps{\n@skmb\termskip\nobreak\zglu\nobreak\skip@b}%
\def\changesignatures{\changesignature}%
\def\changesignature{\n@skmb\termskip\nobreak\zglu\nobreak
\skip@b\writenewsignatures}%
\def\z@barre{\n@skmb\termskip\nobreak\skip@b\-\hskip\zglueskip\nobreak}%
\def\xz@barre{\temps}%
%
\def\newbar{\barvrule\def\barvrule{\thinvrule}\message{bar \the\barno}%
\global\advance\barno by 1\relax}%
%
\def\w@barno{\global\n@iii=\barno\global\divide\n@iii by \freqbarno\relax
\ifnum\n@iii=\lastbarno\relax
\else{\y@i=\altplancher\advance\y@i by \systemheight
\advance\y@i by 2\internote\raise\y@i\llap{\it \number\barno
\kern -6\p@}}\fi\global\lastbarno=\n@iii
}%
\newif\ifprimavolta
\newif\ifsecondavolta
\def\freqbarno{1}\def\wbarno{\w@barno}
\def\wbarno@x{\ifprimavolta\make@prima 1\else
\ifsecondavolta\make@prima 2\else
\wbarno
\fi\fi
\primavoltafalse\secondavoltafalse
\global\n@iii=\barno\global\divide\n@iii by \freqbarno\relax
\global\lastbarno=\n@iii}
%
\def\Setprimavolta#1#2{\primavoltatrue\def\up@volta{#1}\def\lg@volta{#2}}
\def\setprimavolta{\Setprimavolta{2\Interligne}{1cm}}
\def\Setsecondavolta#1#2{\secondavoltatrue\def\up@volta{#1}\def\lg@volta{#2}}
\def\setsecondavolta{\Setsecondavolta{2\Interligne}{1cm}}
\def\make@prima#1{{\y@i=\altplancher\advance\y@i by \systemheight
\advance\y@i by \up@volta
\raise\y@i\rlap{\vrule height 2\Interligne\rm\ #1.}\advance\y@i 2\Interligne
\raise\y@i\rlap{\vrule height \z@ depth \lthick width \lg@volta}%
}}
\def\up@volta{2\Interligne}\def\lg@volta{1cm}
%
% discretionary line breaking
%
\def\noautolines{\def\barre{\n@barre}\def\zbarre{\z@barre}%
\def\alaligne{\c@ountline\n@alaligne}\def\zalaligne{\n@zalaligne}%
\def\currenthyphenpenalty{\setnohyphenpenalty}%
\def\updatecontext{\n@updatecon}%
\def\leftrepeat{\n@leftrepeat}%
\def\leftrightrepeat{\n@leftrightrepeat}%
\setnohyphenpenalty}%
%
\def\setnohyphenpenalty{\linepenalty=500\pretolerance=-1%
\finalhyphendemerits=-10\hyphenpenalty=-10%
\exhyphenpenalty=0\doublehyphendemerits=0%
\adjdemerits=0\interlinepenalty=0}%
%
\def\sethyphenpenalty{\linepenalty=500\pretolerance=-1%
\finalhyphendemerits=1000\hyphenpenalty=1000%
\exhyphenpenalty=0\doublehyphendemerits=0%
\adjdemerits=0\interlinepenalty=1000}%
%
\newcount\barsinline
\newcount\linesinpage
\newcount\maxbarsinline
\newcount\maxlinesinpage
\def\c@ountbar{\global\advance\barsinline by 1\relax}%
\def\c@ountline{\global\advance\linesinpage by 1\relax}%
%
\def\autolines#1#2#3{% #1 nombre d'elemskip par mesure,
% #2 nombre de mesures par ligne,
% #3 nb lignes par page
\global\maxbarsinline=#2\relax
\global\maxlinesinpage=#3\relax
\global\elemskip=\line@width\global\advance\elemskip by -10\Internote
\global\divide\elemskip by \maxbarsinline\relax
\global\advance\elemskip by -6\Internote\global\divide\elemskip by #1\relax
\def\barre{\t@barre}\def\updatecontext{\t@updatecon}\def\zbarre{\t@zbarre}%
\def\alaligne{\t@alaligne}\def\zalaligne{\t@zalaligne}%
\def\leftrepeat{\t@leftrepeat}%
\def\leftrightrepeat{\t@leftrightrepeat}%
\def\currenthyphpenalsty{\sethyphenpenalty}\sethyphenpenalty}%
%
\def\t@barre{\c@ountbar
\ifnum\barsinline<\maxbarsinline\relax\x@barre
\else\t@alaligne
\fi}%
\def\t@zbarre{\c@ountbar
\ifnum\barsinline<\maxbarsinline\relax\xz@barre
\else\t@zalaligne
\fi}%
%
\def\t@alaligne{\c@ountline
\ifnum\linesinpage<\maxlinesinpage\relax\n@alaligne
\else\alapage
\fi}%
\def\t@zalaligne{\c@ountline
\ifnum\linesinpage<\maxlinesinpage\relax\n@zalaligne
\else\zalapage
\fi}%
%
\def\Suspmorceau{\c@ountline\finmorceau
\ifnum\linesinpage<\maxlinesinpage\relax\else\eject
\global\linesinpage=0\relax\fi}%
%
%
\def\tz@barre{\c@ountbar
\ifnum\barsinline<\maxbarsinline\relax\z@barre
\else
\c@ountline
\ifnum\linesinpage<\maxlinesinpage\relax\zalaligne
\global\advance\linesinpage by -1\relax % car \alaligne aura aussi augmente
\else\zalapage
\fi\fi}%
%
\def\t@updatecon{\c@ountbar
\ifnum\barsinline<\maxbarsinline\relax\x@updatecon
\else
\c@ountline
\ifnum\linesinpage<\maxlinesinpage\l@updatecon
\else\p@updatecon
\fi\fi}%
%\check
%
\noautolines
%
\def\n@barre{\gluebrule\newbar\gluearule}% barre de mesure
\def\xbarre{\c@ountbar\x@barre}
\def\xbeambarre{\notes\charnote0{\hss\altplancher=\z@\newbar\wbarno@x}\enotes}
\def\x@barre{\gluebrule\newbar\zgluearule}% barre de mesure
% sans possibilite de saut
%
\def\d@oubleBAR{\thinvrule\nobreak\hskip
0.6\Internote\global\advance\x@skip0.6\Internote
\nobreak\thickvrule}%
%
\def\d@oublebar{\thinvrule\nobreak\hskip 0.8\Internote
\global\advance\x@skip0.8\Internote
\nobreak\thinvrule}%
%
\def\r@ightrepeat{\hbox{\w@colons\d@oubleBAR}\global\advance\x@skip
7.12\Internote}
\def\l@eftrepeat{\hbox{\thickvrule\kern 0.6\Internote\thinvrule\w@colons
}\global\advance\x@skip7.12\Internote}
\def\l@eftrightrepeat{\hbox{\w@colons\thickvrule
\kern 0.6\Internote\thickvrule\w@colons}\global\advance\x@skip
6.2\Internote}
%
%\check
%
\def\leftrightrepeatsymbol{\gluebrule\l@eftrightrepeat\glueaftersymbol}
\def\glueaftersymbol{{\def\wbarno{}\afterruleskip=\Internote\zgluearule}}%
\def\leftrepeatsymbol{\gluebrule\l@eftrepeat\glueaftersymbol}%
\def\rightrepeatsymbol{\gluebrule\r@ightrepeat\glueaftersymbol}%
%
%\check
%
\def\doublebarre{\setdoublebar\barre}% double barre de mesure
\def\setdoublebar{\def\barvrule{\d@oublebar}}%
\def\setdoubleBAR{\def\barvrule{\d@oubleBAR}}%
\def\rightrepeat{\setrightrepeat\barre}%
\def\finrightrepeat{\setrightrepeat\suspmorceau}%
%
\def\setrightrepeat{\def\barvrule{\r@ightrepeat}}%
\def\setleftrepeat{\def\barvrule{\l@eftrepeat}}%
\def\setleftrightrepeat{\def\barvrule{\l@eftrightrepeat}}%
%
\def\think@vrule@f#1{\raise\altplancher\hbox{\vdlthick height\systemheight width
#1}\global\advance\x@skip by #1}%
\def\stdbarrules{\def\think@vrule{\think@vrule@f}} % standard v rules over all instruments
\stdbarrules
\def\sepbarrules{\def\think@vrule{\think@vrule@s}} % standard v rules over all instruments
%
\def\think@vrule@s#1{\n@loop \selectinstr
\y@v=\nbportees\interportee \advance\y@v -\Interportee \advance\y@v \lthick
\raise\altitude \hbox to \z@{\vdlthick width #1 height
\y@v\hss}\repeat
\global\advance\x@skip by #1\kern #1} % separated vrules par instrum
%\check
\def\vrule@inst#1{\selectinstr{\p@loop\raise\altportee
\hbox to \z@{\vrule width #1 height 8\internote\hss}\n@portee\repeat}}%
%
%
\def\thinvrule{\think@vrule{\lthick}}%
\def\thickvrule{\think@vrule{1.2\Internote}}%
%
\def\finmorceau{\setdoubleBAR\suspmorceau}%
%\check
%
\def\c@other{}% void, but possibly changed by lines.tex... and others
\def\gluearule{\-\zgluearule}%
\def\zgluearule{\nobreak\wbarno@x\ygluearule}%
\def\ygluearule{\nobreak\kern\afterruleskip\nobreak
\global\advance\x@skip\afterruleskip\global\n@skip=\z@}%
% terminate skips and continue slurs and ties if any
\def\termskip{\upd@sk
\ten@loop\ifnum\t@s=0\relax
\else\c@ten
\fi
\global\advance\n@l by 1\relax
\repeat\nobreak
\c@other\nobreak
\global\n@skip=\z@\global\x@skip=\z@}%
%
\def\gluebrule{\nobreak\termskip\@tenleader{\tempsskip}\nobreak}%
%
\def\writesignatures{\global\sign@skip=\z@
\w@ritesigns
\global\advance\sign@skip by 0.4\Internote \nobreak\hskip\sign@skip
}%
\def\Writesignatures{\global\sign@skip=\z@
\w@ritesigns
\nobreak\advance\sign@skip by 1.2\Internote\kern\sign@skip\nobreak}%
%
\def\w@ritesigns{\n@loop\writesigni\repeat}%
%
%\check
\def\instrumentnames{\n@loop\writeinsname\repeat}%
%
%\check
\def\writenewsignatures{\global\sign@skip=\z@
\n@loop\writenewsigni\repeat
\nobreak\ifdim\sign@skip>0.1pt\global\advance\sign@skip by 1.2\Internote
\nobreak\global\n@skip=\sign@skip\termskip
\fi
\nobreak}%
%
%\check
%
% normal hyphenation process when \noautolines
%
\def\setnormalhyphen{\edef\-{\noexpand\discretionary{}%
%\check 2
{\noexpand\hbox{\noexpand\portees\noexpand\writeclefs
\noexpand\everystaff}%
\noexpand\hbox{\noexpand\writesignatures}%
}%
%\check 2
{}}}% fin du def \setnormalhyphen
%\check
% ecrire toutes les indications de mesure sur toutes les portees
\def\writemeters{\global\n@skip=\z@
\n@loop\writemeteri\repeat\nobreak
\ifdim\n@skip>\z@\advance\n@skip by 1.2\Internote
\global\n@skip=\n@skip\termskip
\fi\nobreak}%
%
%\check
\def\writemeteri{\nobreak\selectinstr{\p@loop
\edef\w@call{\noexpand\writemeterp{\noexpand\noportee}\the\metertoks}\relax
\setbox\toks@box=\hbox{\w@call{}{}{}{}}\relax
\ifdim\n@skip<\wd\toks@box\global\n@skip=\wd\toks@box\fi
\raise\altportee\rlap {\box\toks@box}\n@portee
\repeat}}%
%\check
\def\writeclefs{% ecrire toutes les clefs sur toutes les portees
\global\clef@skip=\z@
\w@riteclefs
\kern\clef@skip}%
%
\def\w@riteclefs{\n@loop\writeclefi\repeat}%
%
%\check
\def\writenewclefs{% ecrire toutes les nouvelles clefs sur toutes les
% portees
\global\clef@skip=\z@
\w@ritenewclefi
\kern\clef@skip\global\advance\x@skip\clef@skip\nobreak}%
%
\def\w@ritenewclefi{\n@loop\writenewclefi\repeat}%
%
%\check
\def\writesigni{\selectinstr\def\o@test{999}\w@ritenewsigni}%
\def\writenewsigni{\selectinstr\def\o@test{\o@sign}\w@ritenewsigni}%
\def\w@ritenewsigni{{\p@loop
\n@portee
\ifnum\o@test=\sign\relax\else
\edef\get@ref{\noexpand\get@refs\the\cleftoks{}{}{}{}}%
\setbox\toks@box=\hbox{\kern 0.4\Internote\get@ref\compnwsign
\kern 0.4\Internote}%
\ifdim\sign@skip<\wd\toks@box \global\sign@skip=\wd\toks@box\fi
\raise\altportee\rlap{\box\toks@box}%
\fi
\repeat}%
}%
%\check
\def\writeinsname{\selectinstr
\xdef\instrument{\csname instrument\romannumeral
\noinstrument\endcsname}%
\altportee=\altitude
\ifnum\nbportees>0\relax\advance\altportee by \nbportees\interportee
\advance\altportee by -\Interportee
\advance\altportee by \altitude\divide\altportee by 2\relax
\fi
\setbox\n@otebox=\llap{\vbox{\hsize=\parindent\advance\hsize by
-0.8\Internote \centerline{\instrument}}\
\kern 2\p@}\advance\altportee by -0.5\ht\n@otebox
\raise\altportee\box\n@otebox
}%
%\check
\def\get@refs#1#2#3#4{% #1-#4: cle correspondante 0=sol, 6=fa, 1-4=ut .
\ifcase\noportee\relax\global\ut@ref=0\relax
\or\global\ut@ref=#1\relax
\or\global\ut@ref=#2\relax
\or\global\ut@ref=#3\relax
\or\global\ut@ref=#4\relax
\fi}
\def\compnwsign{\ifnum\o@sign=0\relax
\else\ifnum\sign=0\relax
\else\kern 0.4\Internote
\fi
\fi
\ifnum\o@sign<0\relax\w@flats\w@sharps
\else\w@sharps\w@flats
\fi}%
%
%\check
\def\w@flats{%
\ifnum\sign<0\relax\s@bemol{6}\else\ifnum\o@sign<0\relax\s@becarre{6}\fi\fi
\ifnum\sign<-1\relax\s@bemol{9}\else\ifnum\o@sign<-1\relax\s@becarre{9}\fi
\fi
\ifnum\sign<-2\relax\s@bemol{5}\else\ifnum\o@sign<-2\relax\s@becarre{5}\fi
\fi
\ifnum\sign<-3\relax\s@bemol{8}\else\ifnum\o@sign<-3\relax\s@becarre{8}\fi
\fi
\ifnum\sign<-4\relax\s@bemol{4}\else\ifnum\o@sign<-4\relax\s@becarre{4}\fi
\fi
\ifnum\sign<-5\relax\s@bemol{7}\else\ifnum\o@sign<-5\relax\s@becarre{7}\fi
\fi
\ifnum\sign<-6\relax\s@bemol{3}\else\ifnum\o@sign<-6\relax\s@becarre{3}\fi
\fi
}%
%\check
\def\w@sharps{%
\ifnum\sign>0\relax\s@dieze{10}\else\ifnum\o@sign>0\relax\s@becarre{10}\fi
\fi
\ifnum\sign>1\relax\s@dieze{7}\else\ifnum\o@sign>1\relax\s@becarre{7}\fi\fi
\ifnum\sign>2\relax\s@dieze{11}\else\ifnum\o@sign>2\relax\s@becarre{11}\fi
\fi
\ifnum\sign>3\relax\s@dieze{8}\else\ifnum\o@sign>3\relax\s@becarre{8}\fi\fi
\ifnum\sign>4\relax\s@dieze{5}\else\ifnum\o@sign>4\relax\s@becarre{5}\fi\fi
\ifnum\sign>5\relax\s@dieze{9}\else\ifnum\o@sign>5\relax\s@becarre{9}\fi\fi
\ifnum\sign>6\relax\s@dieze{6}\else\ifnum\o@sign>6\relax\s@becarre{6}\fi\fi
}%
%\check
\def\s@bemol#1{\global\n@iii=#1\relax
\p@bedieze\global\advance\y@iii by \fl@raise\raise\y@iii\hbox to
2.08\internote{\def\musicnfont{\musickeyfont}\hss\f@lat\hss}%
}%
\def\s@becarre#1{\global\n@iii=#1\relax
\p@bedieze\global\advance\y@iii by \na@raise\raise\y@iii\hbox to
2.08\internote{\def\musicnfont{\musickeyfont}\hss\n@at\hss}%
}%
\def\s@dieze#1{\global\n@iii=#1\relax
\p@bedieze\global\advance\y@iii by \sh@raise\raise\y@iii\hbox to
2.16\internote{\def\musicnfont{\musickeyfont}\hss\s@harp\hss}%
}%
%
\def\p@bedieze{\global\advance\n@iii by \ut@ref\relax
\global\advance\n@iii by \ut@ref\relax
% cas de la cle de fa
\ifnum\ut@ref=6\global\advance\n@iii by -14\relax\else
\ifnum\ut@ref>0\global\advance\n@iii by -7\relax\fi\fi
\ifnum\n@iii<1\relax\global\advance\n@iii by 7\relax\fi
\ifnum\n@iii<1\relax\global\advance\n@iii by 7\relax\fi
\ifnum\n@iii>11\relax\global\advance\n@iii by -7\relax\fi
\ifnum\n@iii>11\relax\global\advance\n@iii by -7\relax\fi
\global\y@iii=\n@iii\internote
\global\advance\y@iii by -2\internote
}
%\check
%
%\check
%
\def\writeclefp#1#2#3#4#5{%
\n@i=#1\relax
\ifcase\n@i\singleclef{#2}%
\or\singleclef{#3}\or\singleclef{#4}\or\singleclef{#5}\fi
}%
%
%\check
\def\writemeterp#1#2#3#4#5{%
\n@i=#1\relax
\ifcase\n@i\hbox{#2}\or\hbox{#3}\or\hbox{#4}\or\hbox{#5}\fi
}%
%
%\check
\def\writenewclefp#1#2#3#4#5#6#7#8#9{%
\n@i=#1\relax
\ifcase\n@i\newsingleclef{#2}{#6}%
\or\newsingleclef{#3}{#7}\or\newsingleclef{#4}{#8}\or
\newsingleclef{#5}{#9}\fi
}%
%\check
%
\def\singleclef#1{%
\global\n@iii=#1\relax
\charclef
}%
%\check
%
\def\Clefdut{\global\advance\n@iii by -3\relax\raise\n@iii\Interligne\clefdut}%
\def\Clefdefa{\global\advance\n@iii by -6\relax
\raise\n@iii\Interligne\clefdefa}
%
\def\charclef{%
\ifdim\clef@skip<4.8\Internote\global\clef@skip=4.8\Internote\fi
\ifcase\n@iii\relax\clefdesol\relax
\or{\Clefdut}%
\or{\Clefdut}%
\or{\Clefdut}%
\or{\Clefdut}%
\or{\Clefdefa}%
\or{\Clefdefa}%
\fi}%
%\check
%
\def\smallClefdut{\global\advance\n@iii by -3\relax\raise\n@iii
\Interligne\smallclefdut}%
\def\smallClefdefa{\global\advance\n@iii by -6\relax\raise\n@iii
\Interligne\smallclefdefa}%
\def\smallcharclef{%
\ifdim\clef@skip<4.8\Internote\global\clef@skip=4.8\Internote\fi
\ifcase\n@iii\relax\smallclefdesol\relax
\or{\smallClefdut}%
\or{\smallClefdut}%
\or{\smallClefdut}%
\or{\smallClefdut}%
\or{\smallClefdefa}%
\or{\smallClefdefa}%
\fi}%
%\check
\def\newsingleclef#1#2{%
\global\n@iii=#1\relax
\n@ii=#2\relax
\ifnum\n@ii=\n@iii\relax\else\smallcharclef
\fi}%
%\check
\def\writeclefi{\selectinstr
{\p@loop
\edef\w@call{\noexpand\writeclefp{\noexpand\noportee}\the\cleftoks}%
\setbox\toks@box=\hbox{\w@call{}{}{}{}}%
\ifdim\clef@skip<\wd\toks@box \global\clef@skip=\wd\toks@box\fi
\raise\altportee\rlap{\box\toks@box}\n@portee
\repeat}%
}%
%\check
\def\writenewclefi{\selectinstr{\p@loop
\edef\w@call{\noexpand\writenewclefp{\noexpand\noportee}\the\cleftoks\the
\o@cks}%
\setbox\toks@box=\hbox{\w@call{}{}{}{}}%
\ifdim\clef@skip<\wd\toks@box \global\clef@skip=\wd\toks@box\fi
\raise\altportee\rlap{\box\toks@box}\n@portee\repeat}%
}%
%\check
% minuscule: une seule barre
% majuscule: double barre
\def\changecontexte{\changecontext}%
\def\Changecontexte{\Changecontext}%
%
\def\changecontext{\gluebrule\newbar\nobreak\updatecontext}%
\def\pchangecontext{\gluebrule\newbar\nobreak\p@updatecon}%
%\check
\def\Changecontext{\setdoublebar\changecontext}%
\def\pChangecontext{\setdoublebar\pchangecontext}%
%
% write colons on all staffs (a part of [left][right]repeat symbols
%
\def\wrcolons{\w@colons}%
\def\w@colons{\nobreak\hskip 0.8\Internote\nobreak
\n@loop \w@coli\repeat
\nobreak\hskip 0.8\Internote\nobreak}%
%
%\check
%
\def\n@updatecon{% imprime tout ce qui est nouveau
\nobreak\writenewclefs
\nobreak\writenewsignatures\nobreak\setnormalhyphen\-\writemeters\zgluearule
\save@all}%
%
\def\x@updatecon{% imprime tout ce qui est nouveau
\nobreak\writenewclefs\nobreak\wbarno@x
\nobreak\writenewsignatures\nobreak\writemeters\ygluearule
\save@all}%
%
\def\l@updatecon{\nobreak\writenewclefs\nobreak\writenewsignatures
\z@suspend\reprmorceau}%
%
\def\p@updatecon{\nobreak\writenewclefs\nobreak\writenewsignatures
\z@suspend\preprmorceau}%
%
%\check
%
\def\n@leftrepeat{\gluebrule
\nobreak\writenewclefs
\discretionary{\newbar}%
%\check 1
{\hbox{\portees\writeclefs\everystaff\Writesignatures}%
\l@eftrepeat\hbox{\writemeters}}%
%\check 1
{\l@eftrepeat}\nobreak\writemeters\zgluearule
\save@all\setnormalhyphen}%
%
%\check
%
\def\n@leftrightrepeat{\gluebrule
\nobreak\writenewclefs
%
\discretionary{\setrightrepeat\newbar}%
%\check 1
{\hbox{\portees\writeclefs\everystaff\Writesignatures
\l@eftrepeat\writemeters}}%
%\check 1
{\l@eftrightrepeat}\nobreak\writemeters\zgluearule
\save@all\setnormalhyphen}%
%
\def\t@leftrepeat{\c@ountbar
\ifnum\barsinline<\maxbarsinline\relax\setleftrepeat\x@barre
\else
\c@ountline
\ifnum\linesinpage<\maxlinesinpage\l@leftrepeat
\else\p@leftrepeat
\fi\fi}%
%
%\check
%
\def\t@leftrightrepeat{\c@ountbar
\ifnum\barsinline<\maxbarsinline\relax\setleftrightrepeat\x@barre
\else
\c@ountline
\ifnum\linesinpage<\maxlinesinpage\l@leftrightrepeat
\else\p@leftrightrepeat
\fi\fi}%
%
%\check
%
\def\l@leftrepeat{\suspmorceau
\reprmorceau\l@eftrepeat}%
%
\def\p@leftrepeat{\suspmorceau
\preprmorceau\l@eftrepeat}%
%
%\check
%
\def\l@leftrightrepeat{\setrightrepeat\suspmorceau
\reprmorceau\l@eftrepeat}%
%
\def\p@leftrightrepeat{\setrightrepeat\suspmorceau
\preprmorceau\l@eftrepeat}%
%
\def\Changeclef{\Changeclefs}\def\Changeclefs{%
\gluebrule\thinvrule\nobreak\hskip 1.2\Internote\nobreak\newbar
\nobreak\writenewclefs\saveclefs}%
%\check
\def\changeclefs{\termskip\writenewclefs\saveclefs}%
%\check
%**************************************************************************
% les notes proprement dites
%**************************************************************************
\def\vnotes#1\elemskip{\noteskip=#1\elemskip \n@otes}%
\def\znotes{\noteskip=\z@\n@otes}%
%
%\check
%
\def\enotes{\e@notes}%
%
\newdimen\n@skip
\def\skip@n{\hskip \n@skip}%
\def\skip@b{\hskip \brace@w\global\advance\x@skip by\brace@w}%
%
\def\upd@sk{\nobreak\skip@n\global\advance\x@skip by\n@skip\nobreak}%
%
\def\nextstaff{\endstaff\beginstaff}%
\def\nextinstrument{\endinstrument\begininstrument}%
%
\def\n@otes{\def|{\nextstaff}\def&{\nextinstrument}\normaltranspose=\transpose
\def\sf{\sforz}\check@nopen\global\advance\notes@open by 1\relax\upd@sk
\def\rq{\rq@}\def\lq{\lq@}\def\ds{\demisoupir}\relax
\locx@skip=\x@skip
\global\n@skip=\noteskip
\global\noinstrument=0\relax
\begininstrument}%
%
%\check
\def\begininstrument{\global\advance\noinstrument by 1\relax
\selectinstr\resetstem
\ifdim\internote<0.76\Internote\csname set@tinynotesize\endcsname
\computespecifics
\else\ifdim\internote<0.95\Internote\csname set@smallnotesize\endcsname
\computespecifics
\else\csname currentsize\endcsname\fi
\fi
\global\noportee=0\relax\beginstaff
}%
%\check
%
\def\endinstrument{\endstaff}%
%\check
%
\def\beginstaff{\alt@comp
\n@portee
\edef\get@ref{\noexpand\get@refs\the\cleftoks{}{}{}{}}\relax\get@ref
\setbox\n@otebox=\hbox\bgroup\locx@skip=\x@skip }%
%\check
%
\def\endstaff{\egroup
\ifdim\n@skip<\wd\n@otebox \global\n@skip=\wd\n@otebox
\fi
\nobreak\raise\altportee\rlap{\unhbox\n@otebox}\nobreak}%
%
%\check
%
\def\e@notes{\global\notes@open=0\relax\endinstrument
\ifdim\n@skip<\noteskip \showthe\noteskip\showthe\n@skip
\global\n@skip=\noteskip
\fi}%
%
%\check
%
\def\shortstems{\def\stemfactor{4.00}}
\def\normalstems{\def\stemfactor{4.66}}
\normalstems
% queue de note vers le bas
\def\p@tail{\global\advance\st@bot by -\stemfactor\interbeam\global\stem@skip=\z@
\minst@bot\pd@tail}%
% queue de note vers le haut
\def\d@tail{\global\advance\st@top by \stemfactor\interbeam\maxst@top\pd@tail}%
\def\minst@bot{\global\advance\st@bot by -\altportee
\ifdim\st@bot>2\Interligne \global\st@bot=2\Interligne\fi
\global\advance\st@bot by \altportee}
\def\maxst@top{\global\advance\st@top by -\altportee
\ifdim\st@top<2\Interligne \global\st@top=2\Interligne\fi
\global\advance\st@top by \altportee}
%
%\check
%\def\pd@tail{\global\advance\st@top by -\st@bot
% \ifdim\st@top>\p@\global\advance\st@bot by -\altportee
% \raise\st@bot\rlap{\kern\stem@skip\vrule height\st@top width \lthick}\fi
% \resetstem}%
%\check
\def\pd@tail{\ifdim\st@top>\st@bot
\global\advance\st@bot by -\altportee
\global\advance\st@top by -\altportee
\kern\stem@skip
\vrule height\st@top depth -\st@bot width \lthick
\kern-\stem@skip
\kern-\lthick
\fi \resetstem}%
%\check
\def\resetstem{\global\st@bot=99cm\global\st@top=-\st@bot}%
%
\def\setstem{{\advance\y@i by -\n@raise \advance\y@i by \altportee
\ifdim\st@bot>\y@i\global\st@bot=\y@i\fi
\ifdim\st@top<\y@i\global\st@top=\y@i\fi}}%
%
%\check
%
% sequence de placement d'un caractere a une position dans la portee
\def\pl@note{\pl@base \advance\y@i by \n@raise}%
\def\pl@base{\y@i=\n@i\internote}%
%
% lignes supplementaires pour \n@i (position)
%
\newcount\h@lnlv
\newdimen\hlp@width
\newdimen\h@lineup
\newdimen\h@linedn
%\def\h@linei{\raise\h@lnlv\internote
% \llap{\vdlthick width 1.6\hlp@width height \hlthick
% \kern -1.3\hlp@width}}%
\def\h@linei{\h@lineup=\h@lnlv\internote
\h@linedn=\h@lineup
\advance\h@lineup by \hlthick
\advance\h@linedn by -\hlthick
\kern -0.3\hlp@width
\vrule height \h@lineup depth -\h@linedn width 1.6\hlp@width
\kern -1.3\hlp@width}%
%\check
%
\def\h@linesqn{\h@lines{\qn@width}}%
\def\adv@locx@mqn{\advance\locx@skip by -\qn@width}%
%
\def\h@lines#1{\hlp@width=#1\h@lnlv=0\relax
\loop\advance\h@lnlv by -1\relax
\ifnum\n@i<\h@lnlv\relax\advance\h@lnlv by -1\relax
\ifnum\h@lnlv<-20\relax\showthe\h@lnlv\fi
\h@linei\repeat
% \h@lnlv=8\relax
\h@lnlv=\stafflinesnb\relax
\advance\h@lnlv\stafflinesnb\relax
\advance\h@lnlv -2\relax
\loop\advance\h@lnlv by 1\relax
\ifnum\n@i>\h@lnlv\relax\advance\h@lnlv by 1\relax
\ifnum\h@lnlv>30\relax\showthe\h@lnlv\fi
\h@linei\repeat
}%
%\check
% *********** les symboles de notes ou assimiles ****************
%
% placement
%
\newcount\inh@alt
\def\getn@i{\global\inh@alt=0\relax\xgetn@i}%
%
\def\inhgetn@i{\global\inh@alt=1\relax\xgetn@i}%
%
\def\xgetn@i#1{\n@i=9999\relax % par defaut
\edef\t@ruc{\f@tok #1\noexpand\relax\af@tok}\ifcat a\t@ruc\relax
\getn@iletter{#1}%
\else\getn@inonlet{#1}% \ifcat pas lettre
\fi\global\n@raise=\z@}% %
\def\getn@inonlet#1{\edef\ss@uite{}\edef\s@uite{\s@tok #1{}\af@tok}%
\edef\alt@suite{}\ifcat 1\t@ruc\relax
\t@rucfig{#1}% cas active character dont chiffre
\else\t@rucexpcar{#1}%
\fi\alt@suite}% fi du \ifcat 1
%\check
% analysis of accidentals within collective note coding
\def\absoluteaccidentals{\def\Xna{\na}\def\Xsh{\sh}\def\Xfl{\fl}%
\def\Xdsh{\dsh}\def\Xdfl{\dfl}}%
\absoluteaccidentals
%
\def\t@rucexpcar#1{\if ^\t@ruc\relax
\edef\alt@suite{\ifnum
\inh@alt=0\relax\noexpand\Xsh{\s@uite}\fi
\noexpand\getn@i{\s@uite}}\fi
\if _\t@ruc\relax
\edef\alt@suite{\ifnum
\inh@alt=0\relax\noexpand\Xfl{\s@uite}\fi
\noexpand\getn@i{\s@uite}}\fi}%
%\check
\def\t@rucfig#1{\if=\t@ruc\relax
\edef\alt@suite{\ifnum
\inh@alt=0\relax\noexpand\Xna{\s@uite}\fi
\noexpand\getn@i{\s@uite}}\fi
\if*\t@ruc\relax
\sk
\edef\alt@suite{\noexpand\getn@i{\s@uite}}\fi
\if.\t@ruc\relax
\edef\alt@suite{\ifnum
\inh@alt=0\relax\noexpand\pt{\s@uite}\fi
\noexpand\getn@i{\s@uite}}\fi
\if>\t@ruc\relax
\edef\alt@suite{\ifnum
\inh@alt=0\relax\noexpand\Xdsh{\s@uite}\fi
\noexpand\getn@i{\s@uite}}\fi
\if<\t@ruc\relax
\edef\alt@suite{\ifnum
\inh@alt=0\relax\noexpand\Xdfl{\s@uite}\fi
\noexpand\getn@i{\s@uite}}\fi
\if!\t@ruc\relax
\transpose=\normaltranspose\relax
\edef\alt@suite{\noexpand\getn@i{\s@uite}}\fi
\if'\t@ruc\relax
\advance\transpose by 7\relax
\edef\alt@suite{\noexpand\getn@i{\s@uite}}\fi
\if`\t@ruc\relax
\advance\transpose by -7\relax
\edef\alt@suite{\noexpand\getn@i{\s@uite}}%
\else \if -\t@ruc\relax\n@i=#1\relax\fi
\if 1\t@ruc\relax\n@i=#1\relax\fi
\if 2\t@ruc\relax\n@i=#1\relax\fi
\if 3\t@ruc\relax\n@i=#1\relax\fi
\if 4\t@ruc\relax\n@i=#1\relax\fi
\if 5\t@ruc\relax\n@i=#1\relax\fi
\if 6\t@ruc\relax\n@i=#1\relax\fi
\if 7\t@ruc\relax\n@i=#1\relax\fi
\if 8\t@ruc\relax\n@i=#1\relax\fi
\if 9\t@ruc\relax\n@i=#1\relax\fi
\if 0\t@ruc\relax\n@i=#1\relax\fi
\fi}%
%\check
%
\def\getn@iletter#1{\n@i=\expandafter`\t@ruc\relax
\ifnum\n@i >96\relax \advance\n@i by -101\relax % ramener au E (position
% zero en clef de sol, ut@ref=0)
\else\advance\n@i by -83\relax % ramener au S= E + 14
\fi
\advance\n@i by \ut@ref\relax
\advance\n@i by \ut@ref\relax
\advance\n@i by \transpose\relax
\edef\s@uite{\s@tok #1{}\af@tok}\edef\ss@uite{\noexpand\n@fon{\s@uite}}}%
%\check
%
\def\pt@raise{\ifodd\n@i\relax\pt@up=-0.1\Interligne\else\pt@up
=0.3\Interligne\fi
\advance\pt@up by -\n@raise\raise\pt@up}%
%
%
\def\lcharnote#1#2{\getn@i{#1}\pl@llap{#2}}%
%
\def\bigaccid{\def\small@test{\noteskip>-1\p@}}%
\def\smallaccid{\def\small@test{\noteskip>9999\p@}}%
\def\varaccid{\def\small@test{\noteskip>1.9\qn@width}}%
\def\k@eiqdskip{\kern 0.8\qd@skip}
\def\k@meiqdskip{\kern -0.8\qd@skip}
%
\varaccid % accidents de taille variable
%\check
\def\lfl#1{\getn@i{#1}\global\n@raise=\fl@raise
\pl@llap{\ifdim\small@test\f@lat\else\smallf@lat\fi\k@eiqdskip}}%
%\check
\def\ldfl#1{\getn@i{#1}\global\n@raise=\fl@raise
\pl@llap{\ifdim\small@test\df@lat\else\smalldf@lt\fi\k@eiqdskip}}%
%\check
\def\lsh#1{\getn@i{#1}\global\n@raise=\sh@raise
\pl@llap{\ifdim\small@test\s@harp\else\smalls@harp\fi\k@eiqdskip}}%
\def\ldsh#1{\getn@i{#1}\global\n@raise=\z@
\pl@llap{\ifdim\small@test\ds@harp\else\smallds@harp\fi\k@eiqdskip}}%
%\check
\def\lna#1{\getn@i{#1}\global\n@raise=\na@raise
\pl@llap{\ifdim\small@test\n@at\else\smalln@at\fi\k@eiqdskip}}%
%\check
\def\pl@llap{\pl@note\raise\y@i\llap}%
%**************** notes (sans queue) *******************
%
\def\xcharnote#1#2#3{\getn@i{#2}\pl@base\raise\y@i\hbox to #1{#3\hss}}%
%\check
%
\def\raise@note{\advance\locx@skip by\noteskip\raise\y@i\hbox to \noteskip}%
%
% rondes sous diverses formes
%
% ronde decalee a gauche (sans avance)
\def\lw#1{\kern -\wd@skip\zw{#1}\kern \wd@skip}%
%
% ronde decalee a droite (sans avance)
\def\rw#1{\kern \wd@skip\zw{#1}\kern -\wd@skip}%
%\check
% ronde sans avance
\def\zw#1{\getn@i{#1}\def\n@fon{\zw}\def\n@sym{\w@h}\g@zw}%
\def\zwp#1{\getn@i{#1}\def\n@fon{\zwp}\def\n@sym{\w@hp}\g@zw}%
\def\zwpp#1{\getn@i{#1}\def\n@fon{\zwpp}\def\n@sym{\w@hpp}\g@zw}%
\def\zwppp#1{\getn@i{#1}\def\n@fon{\zwppp}\def\n@sym{\w@hppp}\g@zw}%
\def\g@zw{\advancefalse\g@w}%
%\check
%
\def\phpause{\hbox to \noteskip{\vrule width
1.2\qn@width height \internote\hss}}%
\def\pause{\hbox{\raise 5\internote\phpause}}%
\def\hpause{\hbox{\raise 4\internote\phpause}}%
\def\demisoupir{\hbox to \noteskip{\d@soup\hss}%
\advance\locx@skip by \noteskip}%
\def\qp{\hbox to \noteskip{\s@oupir\hss}\advance\locx@skip by \noteskip}%
\def\soupir{\qp}%
\def\dsoupir{\demisoupir}%
% quart de soupir
\def\qs{\hbox to \noteskip{\q@soup\hss}%
\advance\locx@skip by \noteskip}%
\def\qsoupir{\qs}%
\def\quartsoupir{\qs}%
% huitieme de soupir
\def\hs{\hbox to \noteskip{\h@soup\hss}%
\advance\locx@skip by \noteskip}%
\def\hsoupir{\hs}%
\def\huitsoupir{\hs}%
% seizieme de soupir
\def\qqs{\hbox to \noteskip{\s@soup\hss}%
\advance\locx@skip by \noteskip}%
\def\seizsoupir{\qqs}%
%\check
\def\pl@noteq{\pl@note \setstem
\ifdim\noteskip>\z@
\ifdim\st@bot<29cm
\s@tem
\fi
\fi
}%
%
\def\Ped{{\cmsy P\kern -1\p@\it ed.}}%
\def\PED{\rlap{\zcharnote{-5}{\kern -2\p@\Ped}}}%
\def\DEP{\rlap{\zcharnote{-7}{\kern 0.5\noteskip\kern -4\p@\moyen *}}}%
%\check
\def\pl#1{\zcharnote{#1}{\raise 2\p@ \rlap{\ttyeight +}}}%
\def\pointdorgue#1{\zcharnote{#1}{\raise \Interligne\p@orgue}}%
\def\pointdurgue#1{\zcharnote{#1}{\raise-\Interligne\p@urgue}}%
\def\ntrille#1#2{\zcharnote{#1}{\trille{#2\elemskip}}}%
\def\nTrille#1#2{\zcharnote{#1}{\Trille{#2\elemskip}}}%
\def\xtrille#1#2{\zcharnote{#1}{\trille{#2}}}%
\def\xTrille#1#2{\zcharnote{#1}{\Trille{#2}}}%
%
\def\pt#1{\inhgetn@i{#1}\def\n@fon{\pt}\def\n@sym{\z@p}\g@pt}
\def\ppt#1{\inhgetn@i{#1}\def\n@fon{\ppt}\def\n@sym{\z@pp}\g@pt}
\def\pppt#1{\inhgetn@i{#1}\def\n@fon{\pppt}\def\n@sym{\z@ppp}\g@pt}
\def\g@pt{\n@raiseq \pl@note\raise\y@i\rlap{\n@sym}\fi}%
%
\def\n@raiseq{\global\n@raise=\qu@raise\ifnum\n@i<100\relax}
%
%\check
%
% blanche sans queue decalee a gauche
% blanche pointee sans queue
% blanche decalee a gauche
\def\lh#1{\kern -\hd@skip\zh{#1}\kern \hd@skip}%
% blanche decalee a droite sans queue
\def\rh#1{\kern \hd@skip\zh{#1}\kern -\hd@skip}%
% blanche sans queue ni avance
\def\zh#1{\getn@i{#1}\def\n@fon{\zh}\def\n@sym{\h@a}\g@zh}
\def\zhp#1{\getn@i{#1}\def\n@fon{\zhp}\def\n@sym{\h@ap}\g@zh}
\def\zhpp#1{\getn@i{#1}\def\n@fon{\zhpp}\def\n@sym{\h@app}\g@zh}
\def\zhppp#1{\getn@i{#1}\def\n@fon{\zhppp}\def\n@sym{\h@appp}\g@zh}
\def\g@zh{\global\n@raise=\ha@raise\global\n@width=\hn@width\g@z}%
\def\g@z{\ifnum\n@i<100\relax
\h@lines{\n@width}\pl@note\setstem\rlap@symss\fi}%
%
% noires sans queues
%
\def\zq#1{\getn@i{#1}\def\n@fon{\zq}\def\n@sym{\q@u}\g@zq}
\def\zqp#1{\getn@i{#1}\def\n@fon{\zqp}\def\n@sym{\q@up}\g@zq}
\def\zqpp#1{\getn@i{#1}\def\n@fon{\zqpp}\def\n@sym{\q@upp}\g@zq}
\def\zqppp#1{\getn@i{#1}\def\n@fon{\zqppp}\def\n@sym{\q@uppp}\g@zq}
\def\g@zq{\global\n@raise=\qu@raise\global\n@width=\qn@width\g@z}%
%
%\check
\def\rq@#1{\kern \qd@skip\zq{#1}\kern -\qd@skip}%
\def\lq@#1{\kern -\qd@skip\zq{#1}\kern \qd@skip}%
% *********************** notes avec queue **********************
%
%\check
\def\qu{\advancetrue\qu@z}%
\def\qup{\advancetrue\qup@z}%
\def\qupp{\advancetrue\qupp@z}%
\def\quppp{\advancetrue\quppp@z}%
\def\qu@z#1{\getn@i{#1}\def\n@fon{\qu}\def\n@sym{\q@u}\g@qu}%
\def\qup@z#1{\getn@i{#1}\def\n@fon{\qup}\def\n@sym{\q@up}\g@qu}%
\def\qupp@z#1{\getn@i{#1}\def\n@fon{\qupp}\def\n@sym{\q@upp}\g@qu}%
\def\quppp@z#1{\getn@i{#1}\def\n@fon{\quppp}\def\n@sym{\q@uppp}\g@qu}%
%\check
\def\g@qu{\n@raiseq
\global\stem@skip=\qd@skip\def\s@tem{\d@tail}\g@qbh@\fi}%
%
\def\q@up{\hbox to \qn@width{\q@u\hss}\P@t}%
\def\q@upp{\hbox to \qn@width{\q@u\hss}\PP@t}%
\def\q@uppp{\hbox to \qn@width{\q@u\hss}\PPP@t}%
\def\h@ap{\hbox to \hn@width{\h@a\hss}\P@t}%
\def\h@app{\hbox to \hn@width{\h@a\hss}\PP@t}%
\def\h@appp{\hbox to \hn@width{\h@a\hss}\PPP@t}%
\def\w@hp{\hbox to \wn@width{\w@h\hss}\P@t}%
\def\w@hpp{\hbox to \wn@width{\w@h\hss}\PP@t}%
\def\w@hppp{\hbox to \wn@width{\w@h\hss}\PPP@t}%
%
\def\z@p{\kern \qn@width\P@t}\def\z@pp{\kern \qn@width\PP@t}%
\def\z@ppp{\kern \qn@width \PPP@t}%
%\check
\def\rqu#1{\getn@i{#1}\def\n@fon{\qu}\def\n@sym{\kern \qd@skip\q@u}%
\n@raiseq
\kern \qd@skip \h@linesqn\kern -\qd@skip
\global\stem@skip=\qd@skip\def\s@tem{\d@tail}\pl@symss\fi}%
%\check
% noire queue en haut sans avance
\def\zqu{\advancefalse\qu@z}%
\def\zqup{\advancefalse\qup@z}%
\def\zqupp{\advancefalse\qupp@z}%
\def\zquppp{\advancefalse\quppp@z}%
%
% espace vide d'une note
\def\off#1{\advance\locx@skip by #1\kern #1}%
\def\sk{\off\noteskip}%
\def\qsk{\off\qn@width}%
\def\hsk{\off\hn@width}%
%\check
\def\lqu#1{\kern -\qd@skip\zqu{#1}\kern \qd@skip}%
%\check
% noires queue en base
\def\ql{\advancetrue\ql@z}%
\def\qlp{\advancetrue\qlp@z}%
\def\qlpp{\advancetrue\qlpp@z}%
\def\qlppp{\advancetrue\qlppp@z}%
\def\ql@z#1{\getn@i{#1}\def\n@fon{\ql}\def\n@sym{\q@u}\g@ql}%
\def\qlp@z#1{\getn@i{#1}\def\n@fon{\qlp}\def\n@sym{\q@up}\g@ql}%
\def\qlpp@z#1{\getn@i{#1}\def\n@fon{\qlpp}\def\n@sym{\q@upp}\g@ql}%
\def\qlppp@z#1{\getn@i{#1}\def\n@fon{\qlppp}\def\n@sym{\q@uppp}\g@ql}%
\def\g@ql{\n@raiseq
\def\s@tem{\p@tail}\g@qbh@\fi}%
%
% la meme sans avance
\def\zql{\advancefalse\ql@z}%
\def\zqlp{\advancefalse\qlp@z}%
\def\zqlpp{\advancefalse\qlpp@z}%
\def\zqlppp#1{\advancefalse\qlppp@z}%
%\check
% decalees a gauche et a droite
\def\lql#1{\kern -\qd@skip\zql{#1}\kern \qd@skip}%
\def\rql#1{\kern \qd@skip\zql{#1}\kern -\qd@skip}%
%
% croches, doubles croches, triples croches, quadruple croches queue en
% haut et en bas
%
\def\clp{\advancetrue\mclp1}\def\cup{\advancetrue\mcup1}%
\def\clpp{\advancetrue\mclpp1}\def\cupp{\advancetrue\mcupp1}%
\def\clppp{\advancetrue\mclppp1}\def\cuppp{\advancetrue\mcuppp1}%
%
\def\zclp{\advancefalse\mclp1}\def\zcup{\advancefalse\mcup1}%
\def\zclpp{\advancefalse\mclpp1}\def\zcupp{\advancefalse\mcupp1}%
\def\zclppp{\advancefalse\mclppp1}\def\zcuppp{\advancefalse\mcuppp1}%
%
\def\cu{\advancetrue\mcu1}\def\ccu{\advancetrue\mcu2}
\def\cccu{\advancetrue\mcu3}\def\ccccu{\advancetrue\mcu4}%
\def\cl{\advancetrue\mcl1}\def\ccl{\advancetrue\mcl2}
\def\cccl{\advancetrue\mcl3}\def\ccccl{\advancetrue\mcl4}%
%
\def\zcu{\advancefalse\mcu1}\def\zccu{\advancefalse\mcu2}%
\def\zcccu{\advancefalse\mcu3}\def\zccccu{\advancefalse\mcu4}%
\def\zcl{\advancefalse\mcl1}\def\zccl{\advancefalse\mcl2}%
\def\zcccl{\advancefalse\mcl3}\def\zccccl{\advancefalse\mcl4}%
%
\def\mcu#1#2{\getn@i{#2}\def\n@sym{\q@u}%
\edef\n@fon{\noexpand\mcu #1}\g@cu{#1}}
\def\mcup#1#2{\getn@i{#2}\def\n@sym{\q@up}%
\edef\n@fon{\noexpand\mcup #1}\g@cu{#1}}
\def\mcupp#1#2{\getn@i{#2}\def\n@sym{\q@upp}%
\edef\n@fon{\noexpand\mcupp #1}\g@cu{#1}}
\def\mcuppp#1#2{\getn@i{#2}\def\n@sym{\q@uppp}%
\edef\n@fon{\noexpand\mcupp #1}\g@cu{#1}}
\def\g@cu#1{\n@raiseq
\h@linesqn\global\stem@skip=\qd@skip
\def\s@tem{\d@cr#1}\pl@symssq\fi}%
\def\mcl#1#2{\getn@i{#2}\def\n@sym{\q@u}%
\edef\n@fon{\noexpand\mcl #1}\g@cl{#1}}
\def\mclp#1#2{\getn@i{#2}\def\n@sym{\q@up}%
\edef\n@fon{\noexpand\mclp #1}\g@cl{#1}}
\def\mclpp#1#2{\getn@i{#2}\def\n@sym{\q@u}%
\edef\n@fon{\noexpand\mclpp #1}\g@cl{#1}}
\def\mclppp#1#2{\getn@i{#2}\def\n@sym{\q@u}%
\edef\n@fon{\noexpand\mclppp #1}\g@cl{#1}}
\def\g@cl#1{\n@raiseq
\h@linesqn\def\s@tem{\p@cr#1}\pl@symssq\fi}%
%
% ronde
\def\wh#1{\getn@i{#1}\def\n@fon{\wh}\def\n@sym{\w@h}\g@wh}%
\def\whp#1{\getn@i{#1}\def\n@fon{\whp}\def\n@sym{\w@hp}\g@wh}%
\def\whpp#1{\getn@i{#1}\def\n@fon{\whpp}\def\n@sym{\w@hpp}\g@wh}%
\def\whppp#1{\getn@i{#1}\def\n@fon{\whppp}\def\n@sym{\w@hppp}\g@wh}%
\def\g@wh{\advancetrue\g@w}%
\def\g@w{\global\n@raise=\wh@raise\ifnum\n@i<100\relax
\h@lines{\wn@width}\def\s@tem{\resetstem}\pl@symssq\fi}%
%\check
\def\zwh#1{\getn@i{#1}\def\n@fon{\wh}\def\n@sym{\w@h}\rlap{\g@wh}}%
%
% blanche avec queue
\def\ha{\hu}%
\def\hu#1{\getn@i{#1}\def\n@fon{\hu}\def\n@sym{\h@a}\g@hu}%
\def\hup#1{\getn@i{#1}\def\n@fon{\hup}\def\n@sym{\h@ap}\g@hu}%
\def\hupp#1{\getn@i{#1}\def\n@fon{\hupp}\def\n@sym{\h@app}\g@hu}%
\def\huppp#1{\getn@i{#1}\def\n@fon{\huppp}\def\n@sym{\h@appp}\g@hu}%
\def\g@hu{\advancetrue\g@huz}%
\def\g@huz{\global\n@raise=\ha@raise\ifnum\n@i<100\relax
\h@lines{\hn@width}\global\stem@skip=\hd@skip
\def\s@tem{\d@tail}\pl@symssq\fi}%
%
%\check
\def\rhu#1{\getn@i{#1}\def\n@fon{\hu}\global\n@raise=\ha@raise
\def\n@sym{\kern \hd@skip\h@a}%
\ifnum\n@i<100\relax
\kern \hd@skip
\h@lines{\hn@width}\kern -\hd@skip
\global\stem@skip=\hd@skip\def\s@tem{\d@tail}\pl@symss\fi}%
%\check
% blanche avec queue sans avance
\def\zhu#1{\getn@i{#1}\def\n@fon{\hu}\def\n@sym{\h@a}\g@zhu}%
\def\zhup#1{\getn@i{#1}\def\n@fon{\hup}\def\n@sym{\h@ap}\g@zhu}%
\def\zhupp#1{\getn@i{#1}\def\n@fon{\hupp}\def\n@sym{\h@app}\g@zhu}%
\def\zhuppp#1{\getn@i{#1}\def\n@fon{\huppp}\def\n@sym{\h@appp}\g@zhu}%
\def\g@zhu{\advancefalse\g@huz}%
%\check
\def\lhu#1{\kern -\hn@width\zhu{#1}\kern \hn@width}%
%
%
% blanches queue en bas
\def\hl#1{\getn@i{#1}\def\n@fon{\hl}\def\n@sym{\h@a}\g@hl}%
\def\hlp#1{\getn@i{#1}\def\n@fon{\hlp}\def\n@sym{\h@ap}\g@hl}%
\def\hlpp#1{\getn@i{#1}\def\n@fon{\hlpp}\def\n@sym{\h@app}\g@hl}%
\def\hlppp#1{\getn@i{#1}\def\n@fon{\hlppp}\def\n@sym{\h@appp}\g@hl}%
\def\g@hl{\advancetrue\g@hlz}%
\def\g@hlz{\global\n@raise=\ha@raise\ifnum\n@i<100\relax
\h@lines{\hn@width}\def\s@tem{\p@tail}\pl@symssq\fi}%
%\check
\def\zhl#1{\getn@i{#1}\def\n@fon{\hl}\def\n@sym{\h@a}\rlap{\g@zhl}}%
\def\zhlp#1{\getn@i{#1}\def\n@fon{\hlp}\def\n@sym{\h@ap}\rlap{\g@zhl}}%
\def\zhlpp#1{\getn@i{#1}\def\n@fon{\hlpp}\def\n@sym{\h@app}\rlap{\g@zhl}}%
\def\zhlppp#1{\getn@i{#1}\def\n@fon{\hlppp}\def\n@sym{\h@appp}\rlap{\g@zhl}}%
\def\g@zhl{\advancefalse\g@hlz}%
%\check
\def\rhl#1{\kern \hd@skip\zhl{#1}\kern -\hd@skip}%
\def\lhl#1{\kern -\hn@width\zhl{#1}\kern \hn@width}%
%\check
%**************** initialisation de poutres ******************
% \ibu{0<numero<10}{altitude~note}{pente de -9 a +9}
% \ibl{0<numero<10}{altitude~note}{pente de -9 a +9}
%
\def\selectpoutre#1{{\n@i=#1\relax
\ifnum\n@i<0\relax\n@i=29\relax\fi
\advance\n@i by 1\relax
\xdef\b@x{\csname b@x\romannumeral\n@i\endcsname}%
\xdef\b@z{\csname b@z\romannumeral\n@i\endcsname}%
\xdef\bb@x{\csname bb@x\romannumeral\n@i\endcsname}%
\xdef\bb@z{\csname bb@z\romannumeral\n@i\endcsname}%
\xdef\bbb@x{\csname bbb@x\romannumeral\n@i\endcsname}%
\xdef\bbb@z{\csname bbb@z\romannumeral\n@i\endcsname}%
\xdef\bbbb@x{\csname bbbb@x\romannumeral\n@i\endcsname}%
\xdef\bbbb@z{\csname bbbb@z\romannumeral\n@i\endcsname}%
\xdef\bbbbb@x{\csname bbbbb@x\romannumeral\n@i\endcsname}%
\xdef\bbbbb@z{\csname bbbbb@z\romannumeral\n@i\endcsname}%
\xdef\b@n{\csname b@n\romannumeral\n@i\endcsname}%
\xdef\b@p{\csname b@p\romannumeral\n@i\endcsname}}\s@lopdefs}%
% fin selectpoutre
%
\def\ibu#1{\selectpoutre{#1}\i@bu}%
\def\i@bu#1#2{\ifnum\b@n=0\relax\else\t@bu\fi
\global\b@n=-1\relax
\global\b@x=\locx@skip
\global\advance\b@x by \qd@skip\inhgetn@i{#1}\pl@base
\global\b@z=\y@i\global\advance\b@z by\altportee\global\b@p=#2\relax
\global\advance\b@z by 4.333\interbeam}%
%
\def\ibl#1{\selectpoutre{#1}\i@bl}%
\def\i@bl#1#2{\ifnum\b@n=0\relax\else\t@bl\fi
\global\b@n=1\relax
\global\b@x=\locx@skip\inhgetn@i{#1}\pl@base
\global\b@z=\y@i\global\advance\b@z by \altportee\global\b@p=#2\relax
\global\advance\b@z by -4.333\interbeam}%
%\check
\def\ibbu#1{\selectpoutre{#1}\i@bbu}%
\def\ibbl#1{\selectpoutre{#1}\i@bbl}%
\def\i@bbu#1#2{\ifnum\b@n=0\relax\i@bu{#1}{#2}\relax\global\advance\b@z by
\interbeam\fi\n@bbu\relax}%
\def\i@bbl#1#2{\ifnum\b@n=0\relax\i@bl{#1}{#2}\relax\global\advance\b@z by
-\interbeam\fi\n@bbl\relax}%
\def\nbbu#1{\selectpoutre{#1}\ifnum\b@n>-2\relax\ifnum\b@n<2\relax\n@bbu\fi
\fi}%
\def\nbbl#1{\selectpoutre{#1}\ifnum\b@n>-2\relax\ifnum\b@n<2\relax\n@bbl\fi
\fi}%
\def\n@bbu{\gl@au{\b@n}\global\bb@z=\b@z
\ifnum\b@n<0\relax\global\advance\bb@z by -\interbeam
\else \global\advance\bb@z by \interbeam
\fi
{\advance\locx@skip by \qd@skip \global\bb@x=\locx@skip
\advance\locx@skip by -\b@x
\global\advance\bb@z by \s@lope\locx@skip }}%
%
\def\n@bbl{\gl@au{\b@n}\global\bb@x=\locx@skip
\global\advance\bb@x by \lthick
\global\bb@z=\b@z\ifnum\b@n<0\relax\global\advance\bb@z by -\interbeam
\else \global\advance\bb@z by \interbeam \fi
{\advance\locx@skip by -\b@x
\global\advance\bb@z by \s@lope\locx@skip }}%
%\check
\def\ibbbu#1{\selectpoutre{#1}\i@bbbu}%
\def\ibbbl#1{\selectpoutre{#1}\i@bbbl}%
\def\i@bbbu#1#2{\ifnum\b@n=0\relax\i@bbu{#1}{#2}%
\global\advance\b@z by \interbeam
\global\advance\bb@z by \interbeam
\fi\n@bbbu}%
\def\i@bbbl#1#2{\ifnum\b@n=0\relax\i@bbl{#1}{#2}%
\global\advance\b@z by -\interbeam
\global\advance\bb@z by -\interbeam
\fi\n@bbbl}%
\def\nbbbu#1{\selectpoutre{#1}\ifnum\b@n=-1\relax\n@bbu\fi\ifnum\b@n
=1\relax\n@bbu\fi
\ifnum\b@n=-2\relax\n@bbbu\fi\ifnum\b@n=2\relax\n@bbbu\fi
}%
\def\nbbbl#1{\selectpoutre{#1}\ifnum\b@n=-1\relax\n@bbl\fi\ifnum\b@n
=1\relax\n@bbl\fi
\ifnum\b@n=-2\relax\n@bbbl\fi\ifnum\b@n=2\relax\n@bbbl\fi
}%
\def\n@bbbu{\gl@au{\b@n}\global\bbb@z=\b@z
\ifnum\b@n<0\relax\global\advance\bbb@z by -2\interbeam
\else \global\advance\bbb@z by 2\interbeam
\fi
{\advance\locx@skip by \qd@skip\global\bbb@x=\locx@skip
\advance\locx@skip by -\b@x
\global\advance\bbb@z by \s@lope\locx@skip }}%
%
\def\n@bbbl{\gl@au{\b@n}\global\bbb@x=\locx@skip
\global\advance\bbb@x by \lthick
\global\bbb@z=\b@z\ifnum\b@n<0\relax\global\advance\bbb@z by
-2\interbeam
\else \global\advance\bbb@z by 2\interbeam
\fi
{\advance\locx@skip by -\b@x\global\advance\bbb@z by \s@lope\locx@skip }}%
%\check
%
\def\ibbbbu#1{\selectpoutre{#1}\i@bbbbu}%
\def\ibbbbl#1{\selectpoutre{#1}\i@bbbbl}%
\def\i@bbbbu#1#2{\ifnum\b@n=0\relax\i@bbbu{#1}{#2}%
\global\advance\b@z by \interbeam
\global\advance\bb@z by \interbeam
\global\advance\bbb@z by \interbeam
\fi\n@bbbbu}%
\def\i@bbbbl#1#2{\ifnum\b@n=0\relax\i@bbbl{#1}{#2}%
\global\advance\b@z by -\interbeam
\global\advance\bb@z by -\interbeam
\global\advance\bbb@z by -\interbeam
\fi\n@bbbbl}%
\def\nbbbbu#1{\selectpoutre{#1}\ifnum\b@n=-1\relax\n@bbu\fi\ifnum\b@n
=1\relax\n@bbu\fi
\ifnum\b@n=-2\relax\n@bbbu\fi\ifnum\b@n=2\relax\n@bbbu\fi
\ifnum\b@n=-3\relax\n@bbbbu\fi\ifnum\b@n=3\relax\n@bbbbu\fi
}%
\def\nbbbbl#1{\selectpoutre{#1}\ifnum\b@n=-1\relax\n@bbl\fi\ifnum\b@n
=1\relax\n@bbl\fi
\ifnum\b@n=-2\relax\n@bbbl\fi\ifnum\b@n=2\relax\n@bbbl\fi
\ifnum\b@n=-3\relax\n@bbbbl\fi\ifnum\b@n=3\relax\n@bbbbl\fi % *** correction ***
}%
\def\n@bbbbu{\gl@au{\b@n}\global\bbbb@z=\b@z
\ifnum\b@n<0\relax\global\advance\bbbb@z by -3\interbeam
\else \global\advance\bbbb@z by 3\interbeam
\fi
{\advance\locx@skip by \qd@skip \global\bbbb@x=\locx@skip
\advance\locx@skip by -\b@x
\global\advance\bbbb@z by \s@lope\locx@skip }}%
%
\def\n@bbbbl{\gl@au{\b@n}{\advance\locx@skip by \lthick
\global\bbbb@x=\locx@skip}\global\bbbb@z=\b@z
\ifnum\b@n<0\relax\global\advance\bbbb@z by -3\interbeam
\else \global\advance\bbbb@z by 3\interbeam
\fi
{\advance\locx@skip by -\b@x\global\advance\bbbb@z by \s@lope\locx@skip }}%
%\check
%
%
\def\ibbbbbu#1{\selectpoutre{#1}\i@bbbbbu}%
\def\ibbbbbl#1{\selectpoutre{#1}\i@bbbbbl}%
\def\i@bbbbbu#1#2{\ifnum\b@n=0\relax\i@bbbbu{#1}{#2}%
\global\advance\b@z by \interbeam
\global\advance\bb@z by \interbeam
\global\advance\bbb@z by \interbeam
\global\advance\bbbb@z by \interbeam
\fi\n@bbbbbu}%
\def\i@bbbbbl#1#2{\ifnum\b@n=0\relax\i@bbbbl{#1}{#2}%
\global\advance\b@z by -\interbeam
\global\advance\bb@z by -\interbeam
\global\advance\bbb@z by -\interbeam
\global\advance\bbbb@z by -\interbeam
\fi\n@bbbbbl}%
\def\nbbbbbu#1{\selectpoutre{#1}\ifnum\b@n=-1\relax\n@bbu\fi\ifnum\b@n
=1\relax\n@bbu\fi
\ifnum\b@n=-2\relax\n@bbbu\fi\ifnum\b@n=2\relax\n@bbbu\fi
\ifnum\b@n=-3\relax\n@bbbbu\fi\ifnum\b@n=3\relax\n@bbbbu\fi
\ifnum\b@n=-4\relax\n@bbbbbu\fi\ifnum\b@n=4\relax\n@bbbbbu\fi
}%
\def\nbbbbbl#1{\selectpoutre{#1}\ifnum\b@n=-1\relax\n@bbl\fi\ifnum\b@n
=1\relax\n@bbl\fi
\ifnum\b@n=-2\relax\n@bbbl\fi\ifnum\b@n=2\relax\n@bbbl\fi
\ifnum\b@n=-3\relax\n@bbbbl\fi\ifnum\b@n=3\relax\n@bbbbl\fi
\ifnum\b@n=-4\relax\n@bbbbbl\fi\ifnum\b@n=4\relax\n@bbbbbl\fi
}%
\def\n@bbbbbu{\gl@au{\b@n}\global\bbbbb@z=\b@z
\ifnum\b@n<0\relax\global\advance\bbbbb@z by -4\interbeam
\else \global\advance\bbbbb@z by 4\interbeam
\fi
{\advance\locx@skip by \qd@skip \global\bbbbb@x=\locx@skip
\advance\locx@skip by -\b@x
\global\advance\bbbbb@z by \s@lope\locx@skip }}%
%
\def\n@bbbbbl{\gl@au{\b@n}{\advance\locx@skip by \lthick
\global\bbbbb@x=\locx@skip}\global\bbbbb@z=\b@z
\ifnum\b@n<0\relax\global\advance\bbbbb@z by -4\interbeam
\else \global\advance\bbbbb@z by 4\interbeam
\fi
{\advance\locx@skip by -\b@x\global\advance\bbbbb@z by \s@lope\locx@skip }}%
%\check
%
% terminaison de toutes les poutres en suspens
%
%***** terminer une poutre superieure ****************
%\check
%
\def\tbu#1{\selectpoutre{#1}\t@bu}%
\def\tqh#1{\selectpoutre{#1}\t@qh}%
\def\tbbu#1{\selectpoutre{#1}\t@bbu}%
\def\tbbbu#1{\selectpoutre{#1}\t@bbbu}%
\def\tbbbbu#1{\selectpoutre{#1}\t@bbbbu}%
\def\tbbbbbu#1{\selectpoutre{#1}\t@bbbbbu}%
%\check
\def\t@qh{\t@bu\qh@}%
\def\t@bu{\ifnum\b@n<-1\relax\t@bbu\fi
\ifnum\b@n>1\relax\t@bbu\fi
\y@i=\b@z
\advance\y@i by -\altportee
\y@ii=\locx@skip
\advance\y@ii by \qn@width
\advance\y@ii by -\b@x
\llap{\p@outre\hskip -\qn@width}%
\global\b@n=0\relax}%
%
%\check
\def\t@bbu{\ifnum\b@n<-2\relax\t@bbbu\fi
\ifnum\b@n>2\relax\t@bbbu\fi
\ifnum\b@n=1\relax{\adv@locx@mqn\n@bbu}\fi
\ifnum\b@n=-1\relax{\adv@locx@mqn\n@bbu}\fi
\y@i=\bb@z\y@ii=-\bb@x\t@xbu}%
%\check
\def\t@xbu{\advance\y@i by -\altportee
\advance\y@ii by \locx@skip \advance\y@ii by \qn@width
\llap{\p@outre\hskip -\qn@width}%
\ifnum\b@n>0\relax
\advance\y@i by \s@lope\y@ii\raise\y@i\rlap{\kern\qn@width
\kern -\lthick\vrule height \z@ depth 1.8\internote width \lthick}\fi
\gl@de{\b@n}}%
%\check
\def\t@bbbu{\ifnum\b@n<-3\relax\t@bbbbu\fi
\ifnum\b@n>3\relax\t@bbbbu\fi
\ifnum\b@n=2\relax{\adv@locx@mqn\n@bbbu}\fi
\ifnum\b@n=-2\relax{\adv@locx@mqn\n@bbbu}\fi
\y@i=\bbb@z\y@ii=-\bbb@x\t@xbu}%
%
%\check
\def\t@bbbbu{\ifnum\b@n<-4\relax\t@bbbbbu\fi
\ifnum\b@n>4\relax\t@bbbbbu\fi
\ifnum\b@n=3\relax{\adv@locx@mqn\n@bbbbu}\fi
\ifnum\b@n=-3\relax{\adv@locx@mqn\n@bbbbu}\fi
\y@i=\bbbb@z\y@ii=-\bbbb@x\t@xbu}%
%\check
\def\t@bbbbbu{\ifnum\b@n<-5\relax\showthe\b@n\global\b@n=-5\relax\fi
\ifnum\b@n>5\relax\showthe\b@n\global\b@n=5\relax\fi
\ifnum\b@n=4\relax{\adv@locx@mqn\n@bbbbbu}\fi
\ifnum\b@n=-4\relax{\adv@locx@mqn\n@bbbbbu}\fi
\y@i=\bbbbb@z\y@ii=-\bbbbb@x\t@xbu}%
%***** terminer une poutre inferieure****************
\def\tbl#1{\selectpoutre{#1}\t@bl}%
\def\tqb#1{\selectpoutre{#1}\t@qb}%
\def\tbbl#1{\selectpoutre{#1}\t@bbl}%
\def\tbbbl#1{\selectpoutre{#1}\t@bbbl}%
\def\tbbbbl#1{\selectpoutre{#1}\t@bbbbl}%
\def\tbbbbbl#1{\selectpoutre{#1}\t@bbbbbl}%
% provisoire
\def\t@qb{\t@bl\qb@}%
\def\t@bl{\relax
\ifnum\b@n<-1\relax\t@bbl\fi
\ifnum\b@n>1\relax\t@bbl\fi
\y@i=\b@z
\advance\y@i by -\altportee
\y@ii=\locx@skip
\advance\y@ii by \lthick
\advance\y@ii by -\b@x
\kern\lthick\llap{\p@outre}\kern -\lthick
\global\b@n=0\relax}%
%\check
%
\def\t@bbl{\relax
\ifnum\b@n<-2\relax\t@bbbl\fi
\ifnum\b@n>2\relax\t@bbbl\fi
\ifnum\b@n=1\relax{\adv@locx@mqn\n@bbl}\fi
\ifnum\b@n=-1\relax{\adv@locx@mqn\n@bbl}\fi
\y@i=\bb@z\y@ii=-\bb@x\t@xbl}%
%
\def\t@xbl{\advance\y@i by -\altportee
\advance\y@ii by \locx@skip
\advance\y@ii by \lthick
\kern\lthick\llap{\p@outre}\kern-\lthick
\ifnum\b@n<0\relax\advance\y@i by \s@lope\y@ii
\raise\y@i\rlap{\vrule height \interbeam width \lthick}\fi
\gl@de{\b@n}}%
%\check
\def\t@bbbl{\relax
\ifnum\b@n<-3\relax\t@bbbbl\fi
\ifnum\b@n>3\relax\t@bbbbl\fi
\ifnum\b@n=2\relax{\adv@locx@mqn\n@bbbl}\fi
\ifnum\b@n=-2\relax{\adv@locx@mqn\n@bbbl}\fi
\y@i=\bbb@z\y@ii=-\bbb@x\t@xbl}%
%\check
\def\t@bbbbl{\relax
\ifnum\b@n<-4\relax\t@bbbbbl\fi
\ifnum\b@n>4\relax\t@bbbbbl\fi
\ifnum\b@n=3\relax{\adv@locx@mqn\n@bbbbl}\fi
\ifnum\b@n=-3\relax{\adv@locx@mqn\n@bbbbl}\fi
\y@i=\bbbb@z\y@ii=-\bbbb@x\t@xbl}%
%\check
\def\t@bbbbbl{\relax
\ifnum\b@n<-5\relax\showthe\b@n\global\b@n=-5\relax\fi
\ifnum\b@n>5\relax\showthe\b@n\global\b@n=5\relax\fi
\ifnum\b@n=4\relax{\adv@locx@mqn\n@bbbbbl}\fi
\ifnum\b@n=-4\relax{\adv@locx@mqn\n@bbbbbl}\fi
\y@i=\bbbbb@z\y@ii=-\bbbbb@x\t@xbl}%
%******************** notes accrchees aux poutres
% ************************************
%
\def\qh#1{\selectpoutre{#1}\qh@}%
\def\hh#1{\selectpoutre{#1}\hh@}%
\def\qhp#1{\selectpoutre{#1}\qhp@}%
\def\qhpp#1{\selectpoutre{#1}\qhpp@}%
\def\qhppp#1{\selectpoutre{#1}\qhppp@}%
\def\qh@#1{\getn@i{#1}\def\n@fon{\qh@}\def\n@sym{\q@u}\g@qh@}% % position
\def\hh@#1{\getn@i{#1}\def\n@fon{\hh@}\def\n@sym{\h@a}\g@qh@}% % position
\def\qhp@#1{\getn@i{#1}\def\n@fon{\qhp@}\def\n@sym{\q@up}\g@qh@}% % position
\def\qhpp@#1{\getn@i{#1}\def\n@fon{\qhpp@}\def\n@sym{\q@upp}\g@qh@}% % position
\def\qhppp@#1{\getn@i{#1}\def\n@fon{\qhppp@}\def\n@sym{\q@uppp}\g@qh@}% %
% position
\def\qb#1{\selectpoutre{#1}\qb@}%
\def\hb#1{\selectpoutre{#1}\hb@}%
\def\qbp#1{\selectpoutre{#1}\qbp@}%
\def\qbpp#1{\selectpoutre{#1}\qbpp@}%
\def\qbppp#1{\selectpoutre{#1}\qbppp@}%
\def\qb@#1{\getn@i{#1}\def\n@fon{\qb@}\def\n@sym{\q@u}\g@qb@} % #1 position
\def\hb@#1{\getn@i{#1}\def\n@fon{\hb@}\def\n@sym{\h@a}\g@qb@} % #1 position
\def\qbp@#1{\getn@i{#1}\def\n@fon{\qbp@}\def\n@sym{\q@up}\g@qb@} % #1 position
\def\qbpp@#1{\getn@i{#1}\def\n@fon{\qbpp@}\def\n@sym{\q@upp}\g@qb@} % #1
% position
\def\qbppp@#1{\getn@i{#1}\def\n@fon{\qbppp@}\def\n@sym{\q@uppp}\g@qb@} % #1
% position
\def\g@qb@{\n@raiseq
\global\stem@skip=\z@\def\s@tem{\d@balk}\g@qbh@\fi}%
%
\def\g@qh@{\n@raiseq
\global\stem@skip=\qd@skip\def\s@tem{\d@balk}\g@qbh@\fi}%
%
\def\g@qbh@{\h@linesqn\pl@symssq}%
%
\def\pl@symss{\pl@noteq\raise@note{\n@sym\hss}\ss@uite}%
\def\pl@symssq{\ifadvance\pl@symss\else\plap@symss\fi\advancetrue}%
%
\def\rlap@symss{\raise\y@i\rlap{\n@sym}\ss@uite}%
\def\plap@symss{\pl@noteq\rlap@symss}%
%
\def\d@balk{% % queue de note vers une poutre
\y@ii=\b@z % a augmenter avec la pente
\y@v=\locx@skip\advance\y@v by \stem@skip\advance\y@v by -\b@x
\advance\y@ii by \s@lope\y@v
\ifdim\y@ii>\st@top % la poutre est au-dessus
\ifnum\b@n>0\relax\advance\y@ii by \b@n\interbeam
\advance\y@ii by -\interbeam
\fi\global\st@top=\y@ii % a mettre a jour avec la pente ulterieurement
\else
\ifdim\y@ii<\st@bot
\ifnum\b@n<0\relax\advance\y@ii by \b@n\interbeam
\advance\y@ii by \interbeam
\fi\global\st@bot=\y@ii
\fi\fi\pd@tail}%
%
%*********************************** notes sans avancement (accords)
\def\zha#1{{\noteskip=\z@\ha{#1}}}%
%
\def\charnote{\xcharnote{\noteskip}}%
\def\zcharnote{\xcharnote{\z@}}%
%\check
%
%************************* liaisons horizontales **************************
% Tie Fixes.
% I have rewritten several tie macros to eliminate those annoying gaps which
% often appear. The new macros cause ties to be extended with leader, rather
% than lines whose length has to be guessed. TeX cannot make multiple
% horizontal lines with \leaders, so instead I use an \hbox containing
% several short fragments of lines. Each line fragment is of length
% \tenboxwidth, which is initially .75pt.
% In order for the new ties to work properly, every horizontal space must be
% recorded. I have had to amend some macros so that they record the space
% which they produce.
%
\newbox\@tenubox \newskip\@tenuskip \newdimen\tenboxwidth \tenboxwidth.75pt
%
% -macros to maintain a box of tie extenders which is used in the leaders
\global\setbox\@tenubox\hbox{\kern\tenboxwidth}
\def\@uptenubox{\global\setbox\@tenubox
\hbox{\kern\tenboxwidth}\ten@loop
\ifnum\t@s=0\relax\else\up@tenbox\fi
\global\advance\n@l by 1\relax\repeat}%
\def\up@tenbox{\y@ii\t@z\advance\y@ii by \t@y
\global\setbox\@tenubox\hbox{\unhbox\@tenubox
\kern-\tenboxwidth\vrule width\tenboxwidth height\y@ii depth-\t@z}}
%
% -This macro makes the leaders. #1 is the amount of skip. It is extended
% by \tenboxwidth on each side in order to get the lines to join up.
\def\@tenleader#1{\@tenuskip=#1\advance\@tenuskip by2\tenboxwidth\relax
\nobreak\kern-\tenboxwidth\nobreak\cleaders\copy\@tenubox\hskip\@tenuskip
\kern-\tenboxwidth\nobreak}
%
\def\selecttenue#1{{\n@i=#1\relax
\ifnum\n@i<0\relax\n@i=29\fi
\advance\n@i by 1\relax
\xdef\t@x{\csname t@x\romannumeral\n@i\endcsname}%
\xdef\t@z{\csname t@z\romannumeral\n@i\endcsname}%
\xdef\t@p{\csname t@p\romannumeral\n@i\endcsname}%
\xdef\t@s{\csname t@s\romannumeral\n@i\endcsname}%
\xdef\t@w{\csname t@w\romannumeral\n@i\endcsname}}%
\ifnum\t@w=0\relax
\global\t@y=1.2\p@
\else
\global\t@y= 0.15\Interligne
\fi
}% fin selecttenue
%
%\check
% mise a jour marge inferieure et correction d'altitude de tenues
%
\newdimen\bottom@adv
\def\advancebottom#1{\global\bottom@adv=#1\relax}%
\def\adv@bottom{\global\advance\staffbotmarg by \bottom@adv
\ten@loop \global\advance\t@z by \bottom@adv\relax
\global\advance\n@l by 1\relax
\repeat \@uptenubox
\global\bottom@adv=\z@}%
%
%\check
%
\def\lu@slur{\cmex\char"7A}\def\ru@slur{\cmex\char"7B}%
\def\ll@slur{\cmex\char"7C}\def\rl@slur{\cmex\char"7D}%
\setbox\n@otebox=\hbox{\lu@slur}\brace@w=\wd\n@otebox
%
\def\leg@hrule{\leaders\hrule height \t@y\hfill}%
%
% complete slur of length #1 (up and down)
\def\up@leg{% longueur y@ii
\hbox to \y@ii{\lu@slur\ifdim \y@ii>2\brace@w\leg@hrule
\else\hss\fi\ru@slur}}%
%
\def\lo@leg{% longueur y@ii
\hbox to \y@ii{\ll@slur\ifdim \y@ii>2\brace@w\leg@hrule
\else\hss\fi\rl@slur}}%
%
% slur termination of length #1 (up and down)
\def\up@rleg{% longueur y@ii
\hbox to \y@ii{\ifdim \y@ii>\brace@w\leg@hrule
\else\hss\fi\ru@slur}}%
%
\def\lo@rleg{% longueur y@ii
\hbox to \y@ii{\ifdim \y@ii>\brace@w\leg@hrule
\else\hss\fi\rl@slur}}%
%\check
%
% slur beginning (left) (up and down)
\def\up@les{% longueur y@ii
\hbox to \y@ii{\lu@slur\ifdim \y@ii>\brace@w\leg@hrule
\else\hss\fi}}%
%
\def\lo@les{% longueur y@ii
\hbox to \y@ii{\ll@slur\ifdim \y@ii>\brace@w\leg@hrule
\else\hss\fi}}%
%\check
%
% noter un debut de tenue
%
\def\itenu#1{\selecttenue{#1}\i@tenu}%
% \rtenu starts a 'tenuto' one note head on the right
\def\rtenu#1#2{\selecttenue{#1}\i@tenu{#2}\global\advance\t@x by \wn@width}%
\def\i@tenu#1{\global\t@p=1\relax % sens=1
\global\t@s=1\relax % etat en cours
\global\t@x=\locx@skip
\global\advance\t@x by \qd@skip
\inhgetn@i{#1}\pl@base\global\t@z=\y@i\global\advance\t@z by\altportee
\global\advance\t@z by 3.7\p@
\global\t@y=1.2\p@
\global\t@w=0\relax
\up@tenbox}%
%
\def\itenl#1{\selecttenue{#1}\i@tenl}%
\def\minternote{-\internote}%
% \rtenl starts a 'tenuto' one note head on the right
\def\rtenl#1#2{\selecttenue{#1}\i@tenl{#2}\global\advance\t@x by \wn@width}%
\def\i@tenl#1{\global\t@p=-1\relax % sens= -1
\global\t@s=1\relax % actif
\global\t@x=\locx@skip
\global\advance\t@x by \qd@skip
\inhgetn@i{#1}\pl@base\global\t@z=\y@i\global\advance\t@z by \altportee
\global\advance\t@z by -4.5\p@\relax
\global\t@y=1.2\p@
\global\t@w=0\relax
\up@tenbox}%
%\check
\def\tten#1{\selecttenue{#1}\t@ten}%
\def\tleg#1{\selecttenue{#1}{\advance\locx@skip by 1.5\qn@width\kern
1.5\qn@width\t@ten\kern -1.5\qn@width}}%
\def\liftslur#1{\selecttenue{#1}\l@iftslur}%
\def\l@iftslur#1{\global\advance\t@z by #1\relax}%
%
%\check
%
%********************** ponctuations speciales ****************************
%
\def\breath{\raise 3\Interligne\hbox{\enorme'}}%
\def\uptext#1{\resetstem\raise 5\Interligne\rlap{#1}}%
\def\Uptext#1{\resetstem\raise 7\Interligne\rlap{#1}}%
\def\text@sp{\vrule width \z@ height 8.5\p@ depth 3.5\p@}
\def\f{{\ppff {f}}}
\def\ff{{\ppff {f}\kern -0.1ex{f}}}
\def\fff{{\ppff {f}\kern -0.1ex{f}\kern -0.1ex{f}}}
\def\ffff{{\ppff {f}\kern -0.1ex{f}\kern -0.1ex{f}\kern -0.1ex{f}}}
\def\m@idcomp{\y@v=\interportee\advance\y@v by 4\Interligne\divide\y@v by
%%\def\m@idcomp{\y@v=\Interportee\divide\y@v by
2\relax
\raise\y@v\vbox to \z@}%
%
\def\midtwotext#1{{\m@idcomp
{\vss\hbox to \noteskip{\hss\text@sp #1\hss}\vss}}}%
\def\rmidtwotext#1{{\m@idcomp
{\vss\hbox to \noteskip{\text@sp #1\hss}\vss}}}%
\def\zmidtwotext#1{{\m@idcomp
{\vss\rlap{\text@sp #1}\vss}}}%
\def\lmidtwotext#1{{\m@idcomp
{\vss\hbox to \noteskip{\hss\text@sp #1}\vss}}}%
%\check
\def\metron#1#2{{\shortstems\noteskip 10\p@ #1 1\ = #2}}%
%\check
%
%**************************************************************************
% definition standard, modifiables par l'usager
%**************************************************************************
%
\def\resetfacteurs{\stafftopmarg=\z@\staffbotmarg=\z@\nullthick=8\Internote
%
\def\stafflinesnbi{5}%
\def\stafflinesnbii{5}%
\def\stafflinesnbiii{5}%
\def\stafflinesnbiv{5}%
\def\stafflinesnbv{5}%
\def\stafflinesnbvi{5}%
%
\def\clefduti{\clefdutsymbol}%
\def\clefdutii{\clefdutsymbol}%
\def\clefdutiii{\clefdutsymbol}%
\def\clefdutiv{\clefdutsymbol}%
\def\clefdutv{\clefdutsymbol}%
\def\clefdutvi{\clefdutsymbol}%
%
\def\clefdefai{\clefdefasymbol}%
\def\clefdefaii{\clefdefasymbol}%
\def\clefdefaiii{\clefdefasymbol}%
\def\clefdefaiv{\clefdefasymbol}%
\def\clefdefav{\clefdefasymbol}%
\def\clefdefavi{\clefdefasymbol}%
%
\def\clefdesoli{\clefdesolsymbol}%
\def\clefdesolii{\clefdesolsymbol}%
\def\clefdesoliii{\clefdesolsymbol}%
\def\clefdesoliv{\clefdesolsymbol}%
\def\clefdesolv{\clefdesolsymbol}%
\def\clefdesolvi{\clefdesolsymbol}%
%
\def\interfacteur{9}%
\def\bottomfacteur{3}%
\def\topfacteur{3}%
\elemskip=4\Internote
\def\gluemaxskip{0.1\line@width}%
\zglueskip=0pt plus \gluemaxskip minus .5pt%
\tempsskip=2pt plus \gluemaxskip minus 2pt
}%
\resetfacteurs
%\check
\def\normal{\ifdim\Interligne<\p@\computewidths\fi
\elemskip=4\Internote
\def\notes{\vnotes 1.0\elemskip }% double croches
\def\Notes{\vnotes 1.4\elemskip }% croches
\def\NOtes{\vnotes 2.0\elemskip }% croches pointees
\def\NOTes{\vnotes 2.8\elemskip }% noires
\def\NOTEs{\vnotes 4.0\elemskip }%
\def\NOTES{\vnotes 5.6\elemskip }%
}%
%
\ifx\large\undefined
\def\large{\normal\elemskip=4.8\Internote}\fi
%
\def\etroit{\normal
\def\Notes{\vnotes 1.3\elemskip }% croches
\def\NOtes{\vnotes 1.8\elemskip }% croches pointees
\def\NOTes{\vnotes 2.6\elemskip }% noires
\def\NOTEs{\vnotes 3.6\elemskip }%
\def\NOTES{\vnotes 5.2\elemskip }%
}%
%\check
\def\testseq{}%
\def\nspace{\vnotes 0.2\elemskip\sk\enotes}%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\barfill{\leaders\hbox{ --}\hfill}%
\def\octnvrule{\vrule width \z@ height 3\p@ depth 3\p@}%
\def\octvrule{\vrule width \lthick height 3\p@ depth 3\p@}%
\def\octsup#1#2{\zcharnote{#1}{\hbox to #2\noteskip
{\llap{\rm 8}\barfill\octnvrule}}}%
\def\Octsup#1#2{\zcharnote{#1}{\hbox to #2{\rm 8\barfill\octnvrule}}}%
%\check
\def\octfin#1#2{\zcharnote{#1}{\hbox to #2\noteskip{\llap{\rm 8}\barfill
--\octvrule}}}%
\def\Octfin#1#2{\zcharnote{#1}{\hbox to #2{\rm 8\barfill
--\octvrule}}}%
\def\octline#1{\zcharnote{#1}{\hbox to \line@width{\llap{\rm 8}\barfill
\octnvrule\hskip 12\Internote}}}%
\def\Octline#1{\zcharnote{#1}{\hbox to \line@width{\rm 8\barfill
\octnvrule\hskip 8\Internote}}}%
%\check
\def\xtuplet#1#2{\global\n@l=#1\relax\global\advance\n@l by -1\relax
{\divide\noteskip by \n@l\relax\zcharnote{#2}{\kern\n@l\noteskip
\hbox to\z@{\hss\it #1\hss}}}}%
\def\triolet{\xtuplet3}%
%\check
%
\let\wlog=\@plainwlog
%
\def\interfacteur{1}%
\csname musicnorfont\endcsname
\def\nbinstruments{\maxinstruments}\savemeter
\csname normalnotesize\endcsname
\normal % to get \notes correctly defined
\resetfacteurs
\def\nbinstruments{0}%
%
\def\magstep#1{\ifcase#1 \@m\or 1200\or 1440\or 1728\or 2074\or
2488\or 2986\or 3583\or 4300\or 5160\fi\relax}
%
\def\endcatcodesmusic{\catcode`\&=\catcode@and
\catcode`\|=\catcode@vert
\catcode`\>=\catcode@gt
\catcode`\<=\catcode@lt
\catcode`\!=\catcode@excl
\catcode`\*=\catcode@star
\catcode`\:=\catcode@sc
\catcode`\.=\catcode@pt
\catcodesmusicfalse}
\endcatcodesmusic
\catcode`\@=\catcodeat